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
[email protected] – 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
Download

Apresentacao