Este projeto implementa uma Inteligência Artificial (IA) baseada em Deep Q-Learning para jogar o clássico jogo da cobrinha (Snake Game). A IA é treinada para aprender a jogar de maneira autônoma, maximizando sua pontuação enquanto evita colisões.
- Aprendizado por Reforço: Utiliza Deep Q-Learning para aprender e melhorar sua performance.
- Memória de Replay: Implementa uma memória longa e curta para armazenar experiências e aprimorar a tomada de decisões.
- Treinamento com Rede Neural: Utiliza PyTorch para treinar uma rede neural capaz de prever as melhores ações.
- Gráficos em Tempo Real: Exibe gráficos com a evolução da performance da IA ao longo dos jogos.
- Python
- PyTorch
- NumPy
- Matplotlib
- Pygame (para renderizar o jogo)
- Python 3.x instalado (recomendado >= 3.10)
- Ter o Git instalado para clonar o repositório (ou baixar o ZIP manualmente)
Para que o PyTorch funcione corretamente no Windows, é necessário instalar os Microsoft Visual C++ Redistributables. Sem isso, você poderá encontrar erros como:
OSError: [WinError 126] Não foi possível encontrar o módulo especificado. Error loading ...\torch\lib\fbgemm.dll
Baixe e instale os redistribuíveis aqui:
Instale o arquivo:
vc_redist.x64.exe(para sistemas 64 bits)
O projeto pode ser executado tanto na CPU quanto na GPU (se você possuir uma placa de vídeo da NVIDIA com CUDA instalado corretamente).
Mais simples e sem necessidade de drivers adicionais.
pip install torch --index-url https://download.pytorch.org/whl/cpuAcesse o site oficial para gerar o comando de instalação específico para sua versão de CUDA:
https://pytorch.org/get-started/locally/
Exemplo (CUDA 12.1):
pip install torch --index-url https://download.pytorch.org/whl/cu121Execute no terminal dentro do diretório do projeto:
pip install numpy pygame matplotlib-
Clone o repositório:
git clone https://github.com/seu-usuario/snake-game-ai.git
-
Acesse o diretório do projeto:
cd snake-game-ai -
Execute o script principal:
python agent.py
-
A IA começará a jogar e você poderá visualizar a evolução da sua performance.
Durante o treinamento, a IA aprende a sobreviver mais tempo e comer mais frutas, maximizando a pontuação. O progresso é registrado e exibido por meio de gráficos em tempo real.
- Implementação de Redes Neurais Convolucionais (CNNs) para melhorar a percepção do ambiente.
- Otimização dos hiperparâmetros do modelo para maior eficiência.
- Testes com diferentes estratégias de aprendizado e arquiteturas para melhorar a performance da IA.
Contribuições são bem-vindas! Para contribuir:
-
Faça um fork do projeto.
-
Crie uma branch para sua modificação:
git checkout -b minha-modificacao
-
Envie suas alterações:
git push origin minha-modificacao
-
Abra um Pull Request.
Este projeto está licenciado sob a MIT License – consulte o arquivo LICENSE para mais detalhes.