Projeto realizado na disciplina de Inteligência artificial ministrada por Hendrik Macedo.
O projeto consistem na escolha de um dos jogos listados no site da CodeCup, uma plataforma que organiza competições de jogos.
- Escolher um dos jogos listados no link apresentado acima (escolhemos o 6561;
- Modelar o jogo;
- Configurar o servidor da competição (disponibilizado pela Codecup para cada jogo);
- Criar um agente inteligente (IA) que consiga jogar e maximizar pontos.
Como falei anterior mente escolhemos o jogo 6561. O jogo possui a seguinte dinâmica:
O score é apenas a soma de todas as peças no tabuleiro.
- O primeiro jogador (chamaremos de jogador A) escolhe uma coordenada para inserir uma peça de cor vermelha no tabuleiro (em uma coordenada vazia);
- O segundo jogador (jogador B) escolhe outra coordenada vazia para inserir uma segunda peça de cor azul no tabuleiro;
- Jogador 'A' insere uma terceira peça no tabuleiro, agora de cor cinza;
- Jogador 'B' escolhe um movimento de giro: pode ser cima, baixo, esquerda e direita;
- Jogador 'A' escolhe também um dos movimentos de giros citados à cima;
- Esse processo se repete até que as não haja casa para inserir peças ou o tabuleiro esteja completamente vazio durante as rodadas. (na competição só é permitido ir até 1000 rodadas para somar pontos).
- Ao girar o tabuleiro para um dos lados escolhidos (cima, baixo, esquerda e direita) as peças podem ser combinadas ou apagadas;
- Peças de mesma cor e mesmo valor são substiuidas por uma única peça com o valor original multiplicado por 3;
- Peças com mesmo valor e cores diferentes se mutilam (desaparece do tabuleiro).
Para ver a lista completa das regras do jogo clique aqui.
Veja um demo da dinâmica do jogo. (Player 1 jogando cooperativamente com Player2)
Escolhemos o método de Monte Carlo com o critério UCT para modelar nosso agente.
Aqui estamos realizando experimentos com a IA para encontrar um valor ideal para a contatante de Exploration, profundidade e simulações de Monte Carlo. Observe os testes em execução.
-
Intalar as dependencias
pip install numpy
;pip install colorama
.
-
Executar o projeto
python3 player-mcts-6561.py
.
- Rodar comando
dos2unix player-mcts-6561.py
na própria pasta do git; - Copiar esse mesmo arquivo para pasta bin do caia;
- Renomear através do comando
mv player-mcts-6561.py player1
; - Dar permissão de execução:
chmod +x player1
.
Russell, Stuart J. Artificial intelligence a modern approach. Pearson Education, Inc., 2010.
BROWNE, Cameron B. et al. A survey of monte carlo tree search methods. IEEE Transactions on Computational Intelligence and AI in games, v. 4, n. 1, p. 1-43, 2012.
- Ai-boson