Este projeto é um tutorial de como criar um jogo de Pong utilizando Python e Pygame. Além disso, ele inclui um agente de aprendizado por reforço que joga o jogo utilizando um algoritmo evolutivo.
data/
: Contém arquivos de dados, como pontuações.src/
: Contém o código principal do projeto, incluindo o ambiente personalizado, agentes e utilitários.requirements.txt
: Lista de dependências do projeto.
$ Vou deixar o modelo pré-treinado do tflitle, e mais para frente vou trazer a versão sem dependência da lib.
Para instalar as dependências, execute:
- Se você estiver pelo Linux este arquivo setup.sh vai facilitar a criação do .venv
- A versão usada do interpretador para o game é Python3.10.16
chmod +x ./setup.sh && ./setup.sh
Para executar o jogo Pong, navegue até o diretório src
e execute o arquivo Pong.py
:
python src/Pong.py
Para treinar o agente de aprendizado por reforço, execute o arquivo EvolutionaryAgent.py
:
python src/model/EvolutionaryAgent.py
Contém a lógica principal do jogo Pong, incluindo a inicialização do jogo, atualização de sprites e renderização.
Define um ambiente personalizado para o agente de aprendizado por reforço interagir com o jogo Pong.
Implementa um agente de aprendizado por reforço utilizando um algoritmo evolutivo para treinar um modelo que joga Pong.
Contém configurações e constantes utilizadas em todo o projeto, como dimensões da janela, cores e velocidades.
Define as classes de sprites utilizadas no jogo, como Paddle
, Ball
e Particles
.
Define grupos de sprites personalizados para gerenciar e desenhar sprites na tela.
Sinta-se à vontade para abrir issues e pull requests para contribuir com melhorias e correções.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE
para mais detalhes.