Damas3D Programação em Lógica Nelson Jorge Silva Rodrigues – ei00070 Ricardo Jorge Marques Veloso – ei00125 Damas3D • • • • • • Enquadramento Introdução ao jogo Módulo de lógica Módulo de visualização Comunicação entre os módulos Conclusões 2 Enquadramento Damas3D Este trabalho enquadra-se na proposta para o desenvolvimento de um jogo de tabuleiro, feita para a cadeira de programação em lógica (módulo de lógica) e laboratório de computação (módulo de visualização). 3 Damas3D • • • • • • Enquadramento Introdução ao jogo Módulo de lógica Módulo de visualização Comunicação entre os módulos Conclusões 4 Introdução ao jogo Damas3D O jogo resume-se a um tabuleiro de 8x8 casas, alternadamente brancas e pretas, ordenadas alfabeticamente nas colunas e numeradas nas linhas. Regras • Cada jogador começa com 12 pecas, de uma determinada cor, brancas ou pretas. • O jogo efectua-se movimentando as peças sobre as casas pretas e nas diagonais, em direcção ao adversário. 5 Introdução ao jogo Damas3D • Jogada simples: Movimentação das peças para a casa seguinte; • Jogada de comer: Comer uma peça adversaria, avançando assim duas casas. Este tipo de jogada pode ser encadeado; • Jogada de dama: Quando uma peça atinge a última linha do lado oposto, obtém-se a dama que se representa pela sobreposição de duas peças normais. Uma dama pode percorrer mais de uma casa e em qualquer sentido, diagonalmente. Objectivo do jogo O objectivo do jogo é impedir que o adversário tenha jogadas possíveis. A maneira mais fácil de conseguir este objectivo é comer as peças todas do adversário. 6 Damas3D • • • • • • Enquadramento Introdução ao jogo Módulo de lógica Módulo de visualização Comunicação entre os módulos Conclusões 7 Módulo de lógica Damas3D Programa desenvolvido em Prolog. Este módulo contém o motor do jogo, implementando todos os predicados para a validação e efectuação de uma jogada, assim como a implementação de um modo em que o computador actue como um ou ambos os jogadores. Representação do tabuleiro “_” (underscore) – casa vazia “0” – Peça simples branca “@” – Peça simples preta “B” – Dama branca “P” – Dama Preta 8 Módulo de lógica Damas3D Interface no módulo de lógica O jogador a efectuar a jogada é representado como “brancas” ou “pretas” Destaca-se na imagem o modo de introdução das jogadas: ColunaInicialLinhaInicial…ColunaFinalLinhaFinal 9 Damas3D • • • • • • Enquadramento Introdução ao jogo Módulo de lógica Módulo de visualização Comunicação entre os módulos Conclusões 10 Módulo de visualização Damas3D Módulo desenvolvido utilizando a linguagem Java com as extensões que possibilitam a criação e visualização de mundos 3D (Java3D). O ambiente de jogo consiste essencialmente de um tabuleiro de damas em 3 dimensões, um marcador do número de jogos ganhos por cada jogador, e um temporizador que marca o tempo para efectuar uma jogada. A interacção com o utilizador baseia-se na utilização do rato para movimentar as peças no tabuleiro de jogo, devendo no caso de jogadas compostas o utilizador passar por todas as casas que compõem a jogada. 11 Módulo de visualização Damas3D Existe a possibilidade de mudar o aspecto do ambiente de jogo e de ver o filme do jogo. 12 Damas3D • • • • • • Enquadramento Introdução ao jogo Módulo de lógica Módulo de visualização Comunicação entre os módulos Conclusões 13 Comunicação entre os módulos Damas3D A comunicação entre o módulo de lógica e o módulo de visualização efectua-se utilizando o Jasper, uma interface fornecida pelo ambiente de desenvolvimento SICStus Prolog, que permite construir uma aplicação que facilmente integra duas linguagens de programação: Prolog e Java. 14 Damas3D • • • • • • Enquadramento Introdução ao jogo Módulo de lógica Módulo de visualização Comunicação entre os módulos Conclusões • Melhoramentos • Conclusões 15 Melhoramentos Damas3D • Utilização de sockets para comunicação entre os dois módulos • Melhorar funções de avaliação do mini-max; • Melhorar o próprio algoritmo para cortes Alpha-Beta. 16 Conclusões Damas3D • A linguagem de programação Prolog adequa-se perfeitamente ao tipo de aplicação que pretendiamos desenvolver, tendo sido bastante facil a sua aprendizagem. • O Java3D embora seja muito fácil de utilizar sofre de sérias lacunas ao nível da performance. • A interface utilizada para ligar as duas linguagens de programação, o Jasper, revelou-se muito dificil de utilizar, bem como pouco robusta. 17 Damas3D Questões? Nelson Jorge Silva Rodrigues – [email protected] Ricardo Jorge Marques Veloso – [email protected] 18