Connect4 é um projeto acadêmico que desenvolve uma inteligência artificial capaz de jogar o jogo Connect 4 de forma competitiva. O projeto inclui geração de dados de treinamento, treinamento de uma rede neural e integração da IA no jogo, permitindo que a IA tome decisões inteligentes durante as partidas.
- Visão Geral
- Tecnologias Utilizadas
- Instalação
- Geração de Dados
- Treinamento da Rede Neural
- Executando o Jogo
- Estrutura do Projeto
- Licença
O projeto Connect4 tem como objetivo desenvolver uma inteligência artificial que possa jogar Connect 4 de maneira competitiva contra jogadores humanos ou outras IAs. A IA é implementada utilizando redes neurais com TensorFlow e Keras, capazes de aprender estratégias vencedoras a partir de dados de jogos simulados.
A estrutura do jogo está implementada nos scripts fornecidos, e o papel do dev é criar o script player, que integra a IA ao jogo, permitindo que ela escolha jogadas de forma inteligente.
- Python 3.12: Linguagem de programação utilizada para desenvolver o projeto.
- TensorFlow: Biblioteca de aprendizado de máquina para treinamento da rede neural.
- Keras: API de alto nível para construção e treinamento de modelos de redes neurais.
- NumPy: Biblioteca para manipulação de arrays e matrizes.
- Matplotlib: Biblioteca para visualização de dados e gráficos.
- CSV: Formato utilizado para armazenamento dos dados de treinamento.
- Virtualenv: Ambiente virtual para gerenciamento de dependências.
python3.12 python3.12-venv python3.12-dev
-
Instale o Python 3.12 com os pacotes necessários para criação de ambientes virtuais:
sudo apt install python3.12 python3.12-venv python3.12-dev
-
Clone este repositório:
git clone https://github.com/truegreatvoid/connect4
-
Entre no diretório do projeto:
cd connect4 -
Crie um ambiente virtual (opcional, mas recomendado):
python3.12 -m venv venv_cleiton ./venv/bin/activate # No Windows: source venv\Scripts\activate -
Instale as dependências:
pip install -r requirements.txt
Antes de treinar a rede neural, é necessário gerar os dados de treinamento. O script gerar.py simula partidas de Connect 4 entre dois jogadores aleatórios e salva os estados do tabuleiro e as jogadas realizadas em um arquivo CSV.
-
Entre no diretório de redes_neurais:
cd redes_neurais -
Execute o script de geração de dados:
python gerar.py
Isso criará o arquivo
connect4_data.csvcom os dados de treinamento no seu diretório raiz.
Com os dados de treinamento gerados, você pode treinar a rede neural utilizando o script treinamento.py.
-
Entre no diretório de redes_neurais:
cd redes_neurais -
Execute o script de treinamento:
python treinamento.py
Este script carregará os dados de
connect4_data.csv, treinará o modelo de rede neural e salvará o modelo treinado comoconnect4_model.h5no seu diretório raiz. -
Monitoramento do Treinamento: Durante o treinamento, gráficos de perda e acurácia serão exibidos para monitorar o desempenho do modelo.
Após treinar o modelo, você pode executar o jogo Connect 4 com a IA integrada.
-
Certifique-se de que o modelo treinado (
connect4_model.h5) está no diretório raiz do projeto. -
Execute o mediador do jogo:
python mediador.py
O jogo iniciará, exibindo o tabuleiro e alternando entre o jogador aleatório e a IA.
Abaixo está uma visão geral dos principais arquivos e diretórios no repositório:
Connect4/
├── redes_neurais/gerar.py # Script para simular partidas e gerar dados de treinamento
├── redes_neurais/treinamento.py # Script para treinar a rede neural com os dados gerados
├── redes_neurais/jogador.py # Script onde a lógica da IA está implementada
├── mediador.py # Script principal que gerencia as partidas do jogo
├── jogador_random.py # Script do jogador aleatório (oponente da IA)
├── connect4_data.csv # Arquivo CSV contendo os dados de treinamento
├── connect4_model.h5 # Arquivo do modelo treinado da rede neural
├── requirements.txt # Lista de dependências do projeto
└── README.md # Este arquivo
-
redes_neurais/gerar.py: Simula partidas de Connect 4 entre dois jogadores aleatórios e registra os estados do tabuleiro e as jogadas realizadas em
connect4_data.csv. -
redes_neurais/treinamento.py: Carrega os dados de
connect4_data.csv, treina a rede neural utilizando TensorFlow e Keras, e salva o modelo treinado emconnect4_model.h5. -
redes_neurais/jogador.py: Implementa a lógica da IA, utilizando o modelo treinado para escolher a melhor jogada com base no estado atual do tabuleiro.
-
mediador.py: Gerencia as partidas do jogo, alternando entre o jogador aleatório e a IA. Exibe o tabuleiro utilizando Matplotlib e declara o vencedor.
-
jogador_random.py: Implementa a lógica de um jogador que faz jogadas aleatórias, servindo como oponente da IA.
Este projeto é de uso exclusivo para fins educacionais e acadêmicos na disciplina de Inteligência Artificial, ministrada pelo Professor Cleiton, do curso de Análise e Desenvolvimento de Sistemas (4º Período, 2024.02) na Faculdade Unibra. É destinado ao desenvolvimento de habilidades em inteligência artificial e aprendizado de máquina.