Número da Lista: 37
Conteúdo da Disciplina: Programação dinâmica
Matrícula | Aluno |
---|---|
221037975 | Natália Rodrigues de Morais |
221021975 | Gabriel Santos Monteiro |
O projeto é um jogo de sobrevivência chamado Slenderman, no qual o jogador é perseguido pela criatura Slenderman e deve coletar notas para vencer. Este jogo utiliza conceitos de programação dinâmica para otimizar o movimento do inimigo e a geração do mapa.
A programação dinâmica foi implementada no algoritmo de pathfinding do Slenderman, utilizando o algoritmo de Bellman-Ford para encontrar o caminho mais curto até o jogador. Este método considera os pesos diferentes de cada tipo de tile no mapa, permitindo uma perseguição mais eficiente e realista.
Tela de Introdução | Tela de Jogo |
---|---|
![]() |
![]() |
Tela de Início do Jogo | Tela de Fim de Jogo |
---|---|
![]() |
![]() |
Linguagem: Python
Framework: Pygame
- Python 3.x instalado.
- Pygame instalado. Você pode instalar usando:
pip install pygame
- Clone o repositório.
- Navegue até o diretório do projeto.
- Execute o jogo com o comando:
python start.py
Ao iniciar o jogo, você verá uma tela de menu principal com três opções: Novo Jogo, Continuar e Instruções.
- Selecione Novo Jogo para começar uma nova partida.
- Instruções mostrará as regras e controles do jogo.
W
/A
/S
/D
para mover-se.- O objetivo é coletar todas as notas sem ser pego pelo Slenderman.
O jogo utiliza várias técnicas de programação dinâmica e otimização:
-
Algoritmo de Bellman-Ford: Implementado na classe
Enemy
para calcular o caminho mais curto até o jogador, considerando os pesos dos diferentes tipos de terreno. -
Sistema de Pesos: Definido em
config.py
, atribui diferentes valores para cada tipo de tile, influenciando as decisões de movimento do Slenderman. -
Atualização Dinâmica de Caminho: O Slenderman recalcula seu caminho periodicamente, adaptando-se aos movimentos do jogador.
-
Teleporte Inteligente: Quando o jogador coleta uma nota, o Slenderman pode se teleportar para uma posição estratégica, utilizando cálculos baseados na posição atual do jogador.
Este projeto foi desenvolvido para aplicar conceitos de programação dinâmica em uma simulação prática de perseguição e busca.