Jogo moinho ia

Disponível somente no TrabalhosFeitos
  • Páginas : 8 (1948 palavras )
  • Download(s) : 0
  • Publicado : 14 de junho de 2012
Ler documento completo
Amostra do texto
Nine Men's Morris


ABSTRACT
Neste documento, nós abordamos a elaboração do algoritmo que permite jogar o jogo Nine Men’s Morris. O Nine’s Men Morris, é um jogo de tabuleiro onde o objectivo é fazer três em linha de modo a comer uma peça ao adversário até que este tenha apenas 2 peças. Foram implementadas duas avaliações adequadas ao problema.
Categories and Subject Descriptors
A linguagemutilizada para a implementação do problema Nine’s Men Morris foi o Java. Na implementação do nosso problema, para organizar melhor os dados do tabuleiro (locais vazios e locais onde se pode colocar uma peça) utilizamos uma classe separada. Esta classe PosicoesTabuleiro contém as linhas e colunas do tabuleiro e ainda as posições inválidas.
Termos Gerais
Nesta implementação usamos os algoritmosde Mini-Max e Alfa-Beta para decidir a melhor jogada que o agente deverá realizar de modo a obter a vitória no Jogo.
Keywords
Nine Men’s Morris, Função de Avaliação, Estado, Mini-Max, Alfa-Beta, Colocar, Mover, Voar, Mill, Comer.
INTRODUÇÃO
O jogo Nine Men’s Morris é um jogo de dois jogadores parecido com o jogo do galo e é também parecido com o jogo de tabuleiro mais conhecido, o Xadrez.Embora seja um jogo menos popular do que o jogo do Xadrez e menos complexa na forma de jogar, é um bom exemplo a ter em conta para aplicar os conhecimentos da área de Inteligência Artificial.
O objectivo do jogo é tentar comer as peças do adversário. Se conseguir com que o adversário termine com apenas 2 peças, este ganha.
Para comer as peças do adversário é necessário movimentar as peças do jogo econseguir fazer um Mill (3 em linha). O jogo tem 3 fases distintas: a fase de colocar as peças, a fase de movimentar as peças e por fim, a fase de voar com as peças.
No inicio, o tabuleiro está vazio e cada jogador coloca as suas peças alternadamente. Há nove peças a colocar por cada jogador. Caso algum deles consiga fazer Mill, pode imediatamente comer uma peça ao adversário.
Depois de aspeças estarem todas colocadas, os jogadores alternadamente movem as peças de modo a terem o melhor proveito. Os jogadores podem optar por bloquear a jogadas do adversário, ou então tentar fazer Mill.
Num caso mais especial, quando um jogador tiver apenas 3 peças este pode movimentar as suas peças para qualquer posição válida do tabuleiro.
Quando o jogador faz Mill, este apenas pode comer uma peça doadversário que não esteja num Mill. Caso todas as peças do adversário estejam em Mill, pode optar por qualquer uma.
DESCRIÇÃO DO ESTADO
Cada Estado é composto por um tabuleiro de jogo representado por uma matriz de dimensão 7 por 7. No tabuleiro é guardado as posições das peças, peças estas que podem ser brancas (X) e peças pretas (O).
O Estado está responsável por gerir todas asinteracções/movimentos com o tabuleiro de jogo de modo a validar as jogadas que são possíveis (não é permitido jogar em posições inválidas) com recurso à classe PosicoesTabuleiro. É também responsável por colocar e remover peças do tabuleiro cada vez que há uma jogada e ainda verificar se o jogador fez um Mill (3 em linha).
Uma das funções principais do Estado é que verifica o final do jogo e se existe umvencedor.
FUNÇÕES DE AVALIAÇÃO
AvaliacaoI
Esta função tem um carácter mais ofensivo, pois é a que tenta fazer um Mill para que consiga comer o maior número de peças do adversário e por isso não tem em consideração o jogo do adversário.
Esta função tem em conta três aspectos:
* Se for a etapa de colocar peças, é valorizado as posições onde tem um maior número de movimentos possíveis e temainda em conta as linhas/colunas com duas peças suas e outra casa vazia e ainda as linhas/colunas onde já tem um Mill concluído. As linhas/colunas onde tem duas casas com peça suas e outra casa vazia são mais valorizadas, porque estas permitem fazer um novo Mill na próxima jogada, que as linhas/colunas com três peças.
* Se for a etapa de mover peças, é valorizado as linhas/colunas onde já...
tracking img