Jogo de Tabuleiro - Mancala Relatório Final



Documentos relacionados
IA: Busca Competitiva. Ricardo Britto DIE-UFPI

MANUAL DO UTILIZADOR

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG.

COMPUTAÇÃO e PROGRAMAÇÃO

A4 Projeto Integrador e Lista de Jogos

Manual de Colaboração

Aplicações de Escritório Electrónico

Manual de Utilização do Sítio da Disciplina

O AMBIENTE DE TRABALHO DO WINDOWS

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Visão Artificial Para a Indústria. Manual do Utilizador

4.3 Ferramentas para criar conteúdos/recursos educativos

Microsoft Office FrontPage 2003

Google Sites. A g r u p a m e n t o C a m p o A b e r t o /

EIC. Projecto I. Manual do Utilizador. Vídeo Vigilância Abordagem Open Source. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

Reconhecer a estrutura de um sistema operativo. Definir um plano de instalação de um servidor de rede local.

Manual do Utilizador

ZS Rest. Manual Avançado. Menus. v Certificado

7.3. WINDOWS MEDIA PLAYER 12

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Manual de Administração Intranet BNI

Aleph Manual de utilização do módulo de circulação e empréstimos

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Copyright Restinfor, Lda

Conceitos importantes

Guia de Utilização. Acesso Universal

GeoMafra Portal Geográfico

OBI2014 Caderno de Tarefas

Mini-Projecto de PAII Ano Lectivo 2000/01

EXCEL TABELAS DINÂMICAS

Aplicações de Escritório Electrónico

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Como Fazer um Vídeo no Windows Movie Maker

P HC XL - Nem calcula o produto que temos para si...

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Manual do utilizador. Aplicação de agente

Manual do KDots. Minh Ngo Tradução: André Marcelo Alvarenga

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Trabalho de Implementação Jogo Reversi

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

WINDOWS. O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador.

Jogos - aula 2. Xadrez chinês. Exemplo de função de avaliação:

ROUPA DE TRABALHO VOLVO, ENCOMENDAR NO PORTAL WEB

Manual do Usuário. Financeiro. SIGA-ADM vers o 12.05

Motor de Pesquisa Baseado na Web Semântica

Configuração do Ambiente de Trabalho

Ferramentas Web, Web 2.0 e Software Livre em EVT

CAPÍTULO 4 Implementação do modelo num programa de cálculo automático

GeoMafra Portal Geográfico

Tarefa Orientada 2 Criar uma base de dados

CENTRO DE INFORMÁTICA

Criando Quiz com BrOffice.impress

PROJ. Nº LLP NL-ERASMUS-ECUE

Aula 03 PowerPoint 2007

Microsoft Windows. Aspectos gerais

WordPress Institucional UFPel Guia Rápido

Construir um e-portefólio com o Blogger

EAmb V.1 ESPOSENDE AMBIENTE. GestProcessos Online. Manual do Utilizador

Parametrização de Pedidos para a Cozinha

Manual do Utilizador. Impressoras de Rede / Sistemas Operativos Windows. Versão 1.3, Novembro de 2013

DHL PROVIEW MANUAL O DHL PROVIEW DÁ-LHE TOTAL CONTROLO SOBRE OS SEUS ENVIOS.

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Departamento de Sistemas e Informática. Licenciatura em Engenharia Informática Industrial EDP

Sistema de Informação Integrado da Universidade de Évora

Colocar em prática. Tópicos para aprender. Colocar em prática. Utilizar as aplicações da Microsoft Windows num quadro interactivo SMART Board

SOFTWARE LIVRE JCLIC: EXPLORANDO CONCEITOS MATEMÁTICOS ATRAVÉS DA CRIAÇÃO DE ATIVIDADES LÚDICAS

Terceira Avaliação Visualg & Pascal

Ministério da Cultura

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

SAFT para siscom. Manual do Utilizador. Data última versão: Versão: Data criação:

BOLETIM INFORMATIVO TÉCNICO LIBERAÇÃO DE ATUALIZAÇÃO - CORDILHEIRA VERSÃO 2

Relatório SHST

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Windows Live Movie Maker

Aplicações de Escritório Electrónico

CGA Directa. Manual do Utilizador. Acesso, Adesão e Lista de Subscritores

Manual de utilização do Moodle

Seu manual do usuário EPSON LQ-630

I. COMO FAZER O REGISTO NA PLATAFORMA MOODLE 3 II. COMO ACEDER (ENTRAR) NO MOODLE DA ESCOLA 1

MANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA Copyright 2002 Nokia. Todos os direitos reservados Issue 2

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

Engenharia Informática Engenharia Electrotécnica e Computadores Programação Orientada por Objectos Projecto PlayCards

Informações sobre Filmes de Cinema em Cartaz em Linguagem Natural Relatório Final

MANUAL PARA INCLUSÃO DIGITAL- ANDRAGOGIA

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão Cambragest Serviços de Gestão e Software

7. Gestão de ficheiros em X Window O Konqueror

Gestão Pessoal. Relatório Único. Manual preparação do software para o relatório único

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

Manual do InCD Reader

Faculdade Alagoana de Administração FAA Ciência da Computação. (Resolução de Problemas em) Espaço de Estados

Transcrição:

Jogo de Tabuleiro - Mancala Relatório Final Inteligência Artificial 3º ano do Mestrado Integrado em Engenharia Informática e Computação Elementos do Grupo: Bruno Lima 080509068 bruno.lima@fe.up.pt Pedro Barbosa 080509058 ei08058@fe.up.pt Ricardo Amorim 080509103 ricardo.amorim@fe.up.pt 21 de Maio de 2012 1

Índice 1. Funcionalidades... 3 2. Estrutura do programa... 3 3. Esquemas de Representação de Conhecimento... 5 4. Análise de complexidade... 6 5. Ambiente de desenvolvimento... 6 6. Avaliação do programa... 6 7. Conclusão... 8 8. Recursos... 9 2

1. Objetivo No âmbito das metodologias associadas à inteligência artificial, procurouse implementar o jogo de tabuleiro Mancala para dois jogadores que permita a um humano jogar contra o computador ou outro humano, fazendo uso do algoritmo Minimax para o cálculo das melhores jogadas em cada momento. Desta implementou-se também uma componente de inteligência artificial que pode ser usada quer pelo computador, dependendo dos graus de dificuldade, quer pelo jogador, caso este opte por uma sugestão para a jogada. 2. Descrição 1. Funcionalidades O programa disponibiliza uma jogabilidade bastante intuitiva, graças a uma componente gráfica da interface com o utilizador. Enunciam-se a seguir as funcionalidades oferecidas pela aplicação: Três tipos de jogo: humano-humano e humano-computador e computador-computador; Diferentes níveis de profundidade na pesquisa das soluções ótimas; Interface gráfica com menus de navegação; Apresentação dos melhores resultados dos jogadores humanos; Diferentes heurísticas para a inteligência artificial; Visualização do estado do jogo e da pontuação de cada jogador; 2. Estrutura do programa O programa divide-se em três módulos para as funcionalidades que não requerem interação com o utilizador e quatro módulos que implementam quer a interface em modo de texto, quer em modo gráfico. Apresenta-se a seguir a descrição de cada um dos módulos da jogabilidade: 3

Board - implementa as características do tabuleiro em jogo e as estruturas para tal implementação: o número de peças em cada casa, o número de células em cada Mancala 1 ; IA o módulo de inteligência artificial é responsável por calcular uma jogada que possa trazer mais pontos para o jogador que fez o pedido, tendo em conta as regras do jogo no que toca as jogadas grátis ou captura de peças do adversário. Para este cálculo recebe um objeto do tipo Game e a profundidade a utilizar para o algoritmo. Game este módulo recorre a um objeto do tipo Board para gerir as jogadas feitas, o cálculo de possíveis jogadas recorrendo ao algoritmo implementado no módulo IA e verificar a existência de trunfos como nova jogada ou captura de peças do adversário. Relativamente aos módulos da interface com o utilizador, apresenta-se a seguir uma descrição dos mesmos e da interacção com os módulos anteriores: MancalaConsole implementa a interface do programa em modo de texto, permitindo a utilização das funcionalidades do jogo sem interface gráfica; MancalaGUI à semelhança do módulo anterior, o mancalagui configura a interface com o utilizador, mas no modo gráfico, com diferentes menus de interação com o mesmo. Uma vez que se optou pela inclusão de uma biblioteca de gráficos 2D avançados, a implementação deste módulo seguiu a estrutura de um jogo por estados, sendo que o módulo MancalaGUI decide, em cada momento, em que estado está o jogo. Assim, dentro deste módulo encontram-se outros dois componentes que a seguir se enumeram: 1 O Mancala de um jogador é o cesto para o qual este deposita as pedras que em cada jogada passem para lá do seu tabuleiro. 4

MainMenuState: este estado apresenta a interface inicial, quando o programa é executado com as opções de jogar ou sair e a lista das melhores pontuações obtidas; GameplayState: depois do menu inicial, o jogo é iniciado neste estado. Apresenta os componentes básicos o tabuleiro e as peças uniformemente distribuídas bem como as pontuações de cada jogador (que reflectem o número de peças no Mancala de cada um); 3. Esquemas de Representação de Conhecimento Para representação do conhecimento, foram usados 2 arrays com 6 posições, cada um correspondendo aos bolsos de cada jogador, onde são guardados os números de pedras que cada jogador possui em cada bolso. São ainda utilizadas duas variáveis para guardar o número de pedras de cada um dos Mancalas. Estas variáveis são utilizadas no decorrer do jogo para a avaliação das pontuações e das jogadas possíveis. A seguir apresenta-se uma breve descrição de outras estruturas vitais da aplicação: Tabuleiro é utilizado um inteiro que quantifica a quantidade de pedras em cada Mancala e um array de inteiros para descrever a quantidade de pedras em cada bolso para cada jogador; Jogada do computador um jogador que pede a jogada, um inteiro para a posição do bolso sobre a qual incide a jogada e um número (float) para o valor calculado pela heurística; Jogada do jogador humano esta jogada é descrita por um jogador sobre o qual incide e um inteiro que reflete o bolso do qual serão retiradas as pedras; 5

4. Análise de complexidade Se a profundidade máxima da árvore for m e em cada nó houver b hipóteses possíveis (fator de ramificação), a complexidade temporal e espacial do algoritmo Minimax são O(b m ) e O(bm) respectivamente. Aplicando cortes Alfa-Beta a complexidade temporal passa para O(b m/2 ) (com uma ordenação perfeita) e a complexidade espacial mantem-se em O(bm). 5. Ambiente de desenvolvimento O trabalho foi desenvolvido em ambiente Windows (Windows 7), com recurso à ferramenta de desenvolvimento de software Eclipse e Netbeans. A escolha da linguagem de programação a utilizar recaiu sobre o Java dada a sua versatilidade em ambientes que recorram a interface gráfica. Relativamente à interface gráfica disponibilizada foi utilizado um motor gráfico 2D baseado no LWJG (Lightweight Java Game Library) o slick2d. Este motor permitiu uma integração robusta de gráficos avançados em opengl na lógica inerente ao programa, ao mesmo tempo que ofereceu um conjunto de funcionalidades para tornar a interacção com o programa mais apelativa, como menus de navegação. Para esta integração foi então necessário incluir ambas as bibliotecas na ferramenta Eclipse 2. Para executar a aplicação basta incluir as referidas bibliotecas nesta ferramenta, estando imediatamente a seguir disponíveis todas as funcionalidades do jogo. 6. Avaliação do programa Na implementação efectuada, foram especificadas 3 heurísticas: H1 Diferença entre as pontuações dos jogadores; H2 Distância de pontos do jogador para ganhar o jogo; H3 Distância de pontos do jogador adversário para ganhar o jogo; configurada: Na tabela seguinte apresentam-se os resultados, para cada heurística 2 Para configurar facilmente as bibliotecas LWJGL, deve consultar o seguinte endereço: http://ninjacave.com/lwjglwitheclipse e acrescentar o ficheiro slick.jar juntamente com os restantes 6

Resultados obtidos Jogador 1 Jogador 2 Resultados Heuristica1 - Sem A-B P6 Heuristica2 - Sem A-B P6 10/0 Heuristica1 - Com A-B P4 Heuristica2 - Com A-B P4 10/0 Heuristica1 - Sem A-B P4 Heuristica3 - Sem A-B P4 10/0 Heuristica1 - Com A-B P6 Heuristica3 - Com A-B P4 10/0 Heuristica2 - Sem A-B P4 Heuristica3 - Sem A-B P4 0/10 Heuristica2 - Com A-B P4 Heuristica3 - Com A-B P4 0/10 Legenda: A-B Alfa-Beta P4 Profundidade 4 P6 Profundidade 6 7

7. Conclusão Após o desenvolvimento do projeto foram consolidados os conceitos envolvidos com os algoritmos de pesquisa de soluções ótimas ou, em caso de ambiguidades (existência de várias jogadas que levam ao mesmo valor) resolver as mesmas com a pesquisa em maior profundidade. Por fim concluímos que o Minimax é um bom algoritmo para pesquisas de soluções em ambientes onde o espaço de resultados esperados é facilmente descrito e que nem sempre os cortes alfa e beta levam à redução da amostra em análise. 8

8. Recursos No desenvolvimento do programa foram utilizados os seguintes recursos: Ferramentas de desenvolvimento Eclipse e NetBeans Biblioteca de gráficos 2D em Java, LWJGL, http://lwjgl.org/ Ferramentas de desenvolvimento de jogos com base em LWJGL Slick2d, http://slick.cokeandcode.com/static.php?page=about E foram consultados os seguintes documentos: Métodos de resolução de problemas, Eugénio Oliveira, Faculdade de Engenharia da Universidade do Porto, 2012 "Artificial Intelligence: A modern approach". S.Russel, P.Norvig, Prentice-Hall, 3rd Ed., 2010. Alpha-beta prunning, http://en.wikipedia.org/wiki/alpha-beta_pruning, consultado em 20 de Maio de 2012 Minimax Algorythm, http://en.wikipedia.org/wiki/minimax, consultado em 20 de Maio de 2012 Slick2d Project, http://slick.cokeandcode.com/static.php?page=about, acedido em 20 de Maio de 2012 Algoritmo Minimax, http://f.rancis.co/iart/#/, acedido em 16 Maio de 2012 9

9. Manual de utilizador 9.1. Regras de jogo Enunciam-se a seguir as regras de jogo: Cada jogador começa com 4 pedras em cada um dos seus 6 bolsos e com o seu Mancala (bolso grande à sua direita) vazio (Fig2. Condições de início de jogo); Um jogador inicia a sua jogada removendo as pedras de um dos seus bolsos e distribuindo uma pedra por cada bolso, incluindo o seu Mancala, começando pelo bolso imediatamente à sua direita e continuando no sentido inverso dos ponteiros do relógio (Fig3. Primeira jogada: distribuir as 4 peças pelos 5 cestos à frente); Se o jogador tem pedras suficientes para distribuir, para lá do seu Mancala, tem de continuar a colocá-las nos bolsos do seu adversário (ignorando o Mancala do adversário) (Fig4. Passagem de peças para o adversário); Se a última pedra a ser distribuída for colocada no seu Mancala esse jogador tem direito a jogar novamente (Fig5. O jogador 1 (em baixo) pode repetir a jogada depois de enviar a peça para o seu MancalaRepetição de jogada). Se um jogador terminar a distribuição das pedras num bolso vazio (que seja seu) e o bolso oposto (bolso do adversário na mesma posição) contenha pedras, então retira essa pedra e todas as pedras que estejam do bolso oposto e coloca no seu Mancala; O jogo termina quando todos os 6 bolsos de um dos lados do tabuleiro estiverem vazios, o outro jogador terá então de retirar as pedras dos bolsos não vazios e colocá-las no seu Mancala (Fig6. Término do jogo); Um jogador é declarado vencedor quando todos os bolsos estiverem vazios e o número de pedras no seu Mancala for superior ao número de pedras no Mancala do adversário; 1

9.2. Sequência de execução Ao executar o programa é aberto um menu inicial onde são apresentadas as opções, New Game e Exit. Para iniciar um novo jogo terá de clicar na opção New Game, após a qual aparecerá um menu, onde deve seleccionar o tipo de jogo pretendido. Os tipos de jogo possíveis são Human VS Human, Human VS PC e PC VS PC. Clicando no tipo de jogo pretendido será poderá então iniciar o jogo, bastando clicar sobre o bolso que pretende. Nas páginas seguintes apresentam-se imagens da execução de um jogo: Fig1. Menu de modo de jogo 1

Fig2. Condições de início de jogo Fig3. Primeira jogada: distribuir as 4 peças pelos 5 cestos à frente 1

Fig4. Passagem de peças para o adversário Fig5. O jogador 1 (em baixo) pode repetir a jogada depois de enviar a peça para o seu Mancala 1

Fig6. Término do jogo 1