É utilizado a Rede Neural NEAT, Neural Evolution Augmenting Topology, e a Biblioteca Pygame do Python para desenvolver esse Projeto. A rede neural utilizando o Python vai permitir com que o usuário defina os inputs(Entradas) e Outputs(Saidas), ou seja, vai definir as informações de entrada(configurações) e de acordo com essa entrada um resultado especifico. O trabalho das redes neurais é jogar o jogo com diferentes entradas até que consiga aprender a saida "perfeita".
A configuração do NEAT é feita em um arquivo TXT e linkada no código, para que seja possivel a IA identificar suas regras. É passado vários Input para NEAT, no caso 100:
É feito um conceito de gerações, onde dentre esses 100 Inputs irá gerar 1 output, ao aplicar os 100 Inputs no Jogo, irá analisar e verificar qual dos Inputs teve um melhor output, sendo assim, fazendo uma geração nova através deste input.
Para saber mais sobre a AI NEAT, Acesse NEAT Python.
Para rodar o projeto é necessário a instalação de uma Biblioteca dentro de um Ambiente Virtual para não instalar pacotes a mais no seu Python Global do Computador, ou seja:
Para criar uma Ambiente Virtual:
Python -m venv {nome_do_Ambiente_Virtual}
Entrar na venv:
Windows = {nome_do_Ambiente_Virtual}/Scripts/activate
Linux = source {nome_do_Ambiente_Virtual}\bin\activate
Bibliotecas:
pip install pygame
pip install neat-python
Pronto!
Se quiser jogar o jogo, é possivel fazer essa alteração no código, na Variavel ai_jogando, deve colocar valor False para que o jogo se torne manual.
- Python(Pygame)
- NEAT(Neural Evolution Augmenting Topology)