You are on page 1of 10

INTELIGNCIA ARTIFICIAL: JOGO DA VELHA

ngelo Hamilton Santos Oliveira Alfran Pereira Junior Rickson Csar C. Silva Helen Gomes

Aracaj, 2012

Resumo

O nosso artigo abordar a utilizao de algoritmos de Inteligncia Artificial para a criao de jogos, a rea de estudos cientficos com racionalidade est em grande ascenso no mercado. O maior desafio agora desenvolvedor jogos com alto grau de complexidade gerando um bom desafio para o jogador, j que os jogos atualmente esto num nvel grfico e sonoro prximo da realidade. Diversos algoritmos j esto sendo usados pelas produtoras de jogos para a simulao de uma inteligncia humana convincente. Este trabalho demonstra exemplos de lgica para o desenvolvimento da inteligncia artificial, demonstrando a funcionalidade dos mesmos para o atual mercado de desenvolvimento de jogos.

Palavra-Chave: Inteligncia Artificial, jogos.

Abstract
This paper deals with the use of algorithms for Artificial Intelligence game development, due to the fact that this area is a large rise in the market. The biggest challenge now for game developers is to create a game with a good challenge for the player, since the games are at a level close to the graphic and sound reality. Several algorithms are already used by game companies to simulation of human intelligence convincing. This paper shows examples of logic for the development of artificial intelligence, demonstrating the applicability of same for the current market game development. Keywords: Artificial Intelligence, games.

Introduo

O jogo da velha um passatempo popular, o mesmo conhecido por vrios nomes. Na Europa o mesmo conhecido como jogo do galo e Nos pases de lngua inglesa, chamase tic-tac-toe. um jogo extremamente simples, que no traz grandes dificuldades para seus jogadores. Seu nome teria sido originado na Inglaterra, quando nos fins de semana e feriado, mulheres idosas se reuniam para conversar e bordar. As mulheres idosas, com o passar do tempo no conseguia mais bordar em virtude da fraqueza de suas vises, ento comearam a praticar este jogo simples. O jogo da velha por sua vez teria vrias origens, fala-se em tabuleiros escavados nas rochas de templos do antigo Egito. Teriam sido feitos por escravos h 3.500 anos.

Regras

O tabuleiro uma matriz de trs linhas por trs colunas, onde 2 jogadores escolhem uma marcao cada um, geralmente um crculo (O) e um xis (X). Os jogadores jogam alternadamente, uma vez por rodada em um espao, no tabuleiro vazio. O objetivo atingir trs crculos ou trs xis em linha, seja horizontal, vertical ou diagonal e ao mesmo tempo quando possvel impedir o adversrio de ganhar em cada jogada. O jogo se desenvolve em um quadriculado contendo nove casas em que os adversrios se alternam nas jogadas tentando ocupar trs casas sucessivas (horizontal, vertical ou diagonal) para impedir que o adversrio faa o mesmo. Para marcar a casa escolhida cada jogador usa lpis de cores diferentes. Os dois participantes se alternam nas jogadas escolhendo nmeros de 0 a 9, os quais podem ser utilizados uma nica vez. Ganha o jogo aquele que, ao colocar o nmero, obtenha soma 10 em trs casas sucessivas, sendo elas: horizontal, vertical ou diagonal.

Estratgias

O jogo da velha de raciocnio lgico, matemtico e estratgico.


coordenao motora, Senso de lgica, Senso direcional, Planejamento, etc.

Serve para trabalhar a

A partida ser disputada entre o jogador humano contra programas ou agente inteligentes desenvolvidos por outro jogador ou fornecidos pela prpria empresa desenvolvedora do game. Mas o que seria agentes inteligentes. O jogo da velha pode ser dividido e tratado em agente e ambiente. O agente seria o jogador, que percebe o seu ambiente por meio de sensores (os parmetros) e age sobre o ambiente por intermdio de atuadores, isto , o valor retornado com as coordenadas da jogada. Ambiente do jogo da velha

Completamente observvel Os agentes tem acesso ao estado completo do ambiente. Os sensores detectam todos os aspectos que so relevantes para a escolha da ao. A cada jogada o jogador recebe a matriz do tabuleiro atualizada. Estratgico O prximo estado do ambiente completamente determinado pelo estado atual e pela ao executada pelos agentes. Sequencial A deciso afeta todas as aes futuras. Aes em curto prazo podem ter consequncias em longo prazo. O jogador faz uma jogada, o prximo jogador pode dar continuidade a sua jogada anterior como tambm se defender ou iniciar uma nova jogada. Esttico O ambiente no se altera enquanto o agente est decidindo sobre a realizao de uma ao, nem precisa se preocupar com a passagem do tempo.

Discreto O ambiente tem um nmero finito de estados distintos, tambm tem um nmero discreto de percepes e aes. Multiagente O agente est em um ambiente de dois agentes, o jogo precisa de dois jogadores pra disputar a partida. Existem 2 tipos de agentes inteligentes para o jogo da velha: o agente que faz a melhor jogada analisando a situao atual, o que significa que para sua prxima jogada o seu movimento atual vai ser realmente til; e o agente que planeja as suas jogadas, este que age com estratgia. O agente que faz a melhor jogada olha para o tabuleiro e se pergunta: "O que pode me fazer ganhar ou perder ?" . J o agente estratgico pode fazer jogadas que aparentemente no tem sentido, mas que futuramente vo decidir a partida.

Implementao A implementao do jogo da velha mostra claramente, como as tcnicas de inteligncia artificial so teis. Essa implementao pode ser feita diversas formas com nveis de abstrao diferentes. Cada melhora no desempenho do jogo, implica primeiramente na escolha das estruturas mais adequadas para representar o problema e na consequente utilizao de tcnicas de IA. A cada melhora no algoritmo, percebe-se que este cresce em complexidade, uso de generalizaes, clareza de conhecimento e extensibilidade da abordagem. A utilizao de outras tcnicas de IA, mais potentes, resulta em jogos com melhor desempenho tais como jogos de estratgia, onde a mquina praticamente melhora suas estratgias conforme vai "aprendendo" com o desafiante. Minimax lida com jogos como jogo da velha, no qual cada jogador pode ganhar, perder ou empatar. No nosso exemplo especfico que o jogo da Velha, voc pode considerar que aps a sua jogada, o adversrio vai escolher a melhor jogada possvel e ento voc a partir dessa melhor jogada j pensa na melhor que voc pode fazer e assim sucessivamente. Por exemplo, vamos chamar um jogador de MIN e outro de MAX (da veio nome: MINIMAX). O jogador MAX sempre considera que MIN vai escolher a jogada que o deixa na pior situao (pior caso para MAX) e que ele (o MAX) vai escolher a melhor jogada para si. O algoritmo minimax ajuda a encontrar a melhor jogada ao caminhar pelas opes vlidas a partir do fim do jogo. A cada passo assumese que o jogador MAX est tentando maximizar as chances de MAX ganhar, enquanto na prxima rodada o jogador MIN est tentando minimizar as chances de isso acontecer (ao maximizar as chances de que ele prprio ganhe). Resumindo, o jogador usando o algoritmo miniMax constri uma rvore de jogadas achando que ambos (ele mesmo e o adversrio) sempre escolhero solues timas para si mesmos. Veja um exemplo de uma possvel parte de uma rvore de jogo da velha. Atente apenas para o detalhe que nessa rvore temos a impresso que comeou no MIN, quando na verdade comea no MAX. Eu escolhi essa parte do meio da rvore.

rvore de busca de uma partida de Jogo da velha Os nmeros que voc v ao fundo representam o VALOR MINIMAX(n). Esse valor apenas um indicativo de utilidade para o jogador MAX, ou seja, quanto MAIOR O VALOR da jogada do jogador MIN, melhor para o MAX e quanto MENOR O VALOR da jogada do jogador MAX, melhor para o MIN. No caso acima os nmeros indicam as chances de se ganhar com a jogada correspondente. Caso voc faa a jogada no centro do tabuleiro, o computador ir, com certeza, fazer a jogada no canto superior esquerdo. Repare que o MIN escolhe o mnimo valor e o MAX escolhe o mximo valor. a sua vez de jogar, o que voc escolheria? Fazer um movimento de defesa impedindo que oponente vena na prxima jogada, iniciar um nova estratgia, continuar com a sua estratgia de jogadas anteriores ou fazer o movimento para a vitria? Separe os tipos de jogadas e estabelea prioridades. prefervel vencer que impedir que o adversrio vena na prxima jogada.

Concluso Apresentamos o algoritmo Minimax que pode ser aplicado em jogos a fim de determinar qual a melhor jogada atravs de uma rvore de deciso com todas as jogadas possveis. Com um simples jogo da velha desenvolvido em Python para celulares Symbian S60, demonstramos o poder desse algoritmo e seu uso para construo de jogadores inteligentes. Algumas otimizaes foram realizadas a fim de tornar o algoritmo mais eficiente, especialmente por se tratar de uma plataforma mvel (celulares) caracterizadas por poder de processamento limitado e pouca quantidade de memria. Demonstramos o algoritmo com cortes Alpha-beta, que realiza os mesmos clculos que o algoritmo MiniMax, mais eficiente pois corta ramificaes que so irrelevantes para o resultado final. Na maioria dos casos impossvel considerar toda a rvore de jogadas, logo necessrio tambm cortar a rvore ou limitar a sua construo. Criamos mecanismos de controle de busca de profundidade e tambm a criao de funes de avaliao, que estime o valor dos ns terminais. Outras variaes do minimax existem a fim de otimiz-lo ou deix-lo mais inteligente. Posteriormente, novos artigos podem abordar essas variaes do Minimax.

Referncia Bibliogrfica

You might also like