Skip to content

romulodm/pac-man

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pac-Man

📰 Descrição do Projeto

Esse projeto foi concluído no final do meu primeiro ano da graduação, na disciplina de Algoritmos e Estrutura de Dados I. O objetivo foi colocar em prática o conhececimento adquirido sobre POO. Tentei fazer com que o jogo ficasse o mais parecido possível com o Pac-Man original, porém, devido às limitações da biblioteca usada e também de conhecimento acerca de programação e boas práticas, o projeto final é, de certa forma, bem simples.


Vídeo de demonstração

📺 Esse vídeo foi feito de forma simples, apenas para mostrar como o jogo funciona: Vídeo no Youtube


🔎 Visão Geral

O jogo possui apenas um mapa, com 244 comidas no total (contando com as especiais). Sempre que as comidas se esgotam, o jogo reinicia no mesmo mapa mantendo apenas a pontução do usuário.



Esse mapa é representado através de uma matriz de tamanho 28x31, que é usada para fazer os testes de colisão do Pac-Man com as paredes (0's representam caminhos e 1's representam paredes). Além disso, ela é utilizada para fazer com que os fantasmas consigam traçar o seu caminho através do Algoritmo A*.


Cada fantasma também tem uma forma específica de se movimentar pelo mapa:

👻 Fantasmas

  • Blinky: Traça o seu caminho para ir diretamente até o Pac-Man (seguindo-o);
  • Pinky: Tem movimentos definidos e fica repetindo-os ao longo do jogo;
  • Clyde: Se movimenta de forma aleatória (tentando se manter no meio do mapa);
  • Inky: Pega o quadrante e o movimento atual do Pac-Man, para tentar interceptá-lo. Se o Pac-Man estiver no quadrante 1 do mapa (parte superior esquerda) e está se movendo para a direita, o Inky vai até o quadrante 2 (parte superior direita) em um ponto pré-definido;

Vale salientar que os fantasmas que precisam traçar os seus caminhos, usam o A* para definir o trajeto. Esse trajeto não é atualizado a todo momento, para não termos problema com memória. Por isso, os movimentos dos fantasmas ficam armazenados em uma lista. Então, toda vez que a lista fica vázia eles traçam uma nova rota.


Algoritmo A*

🛠️ Rodar o Projeto

  • Ter python instalado
  • Baixar a biblioteca pathfinding: pip install pathfinding
  • Rodar o arquivo main.py

About

A copy of Pac-Man built from scratch as my first year undergraduate project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages