Upload
internet
View
113
Download
6
Embed Size (px)
Citation preview
Damas3D
Programação em Lógica
Nelson Jorge Silva Rodrigues – ei00070
Ricardo Jorge Marques Veloso – ei00125
22
Damas3DDamas3D
• EnquadramentoEnquadramento• Introdução ao jogoIntrodução ao jogo• Módulo de lógicaMódulo de lógica• Módulo de visualizaçãoMódulo de visualização• Comunicação entre os módulosComunicação entre os módulos• ConclusõesConclusões
33
EnquadramenEnquadramentoto
Este trabalho enquadra-se na proposta Este trabalho enquadra-se na proposta para o desenvolvimento de um jogo de para o desenvolvimento de um jogo de tabuleiro, feita para a cadeira de tabuleiro, feita para a cadeira de programação em lógica (módulo de lógica) e programação em lógica (módulo de lógica) e laboratório de computação (módulo de laboratório de computação (módulo de visualização).visualização).
Damas3D
44
Damas3DDamas3D
• EnquadramentoEnquadramento• Introdução ao jogoIntrodução ao jogo• Módulo de lógicaMódulo de lógica• Módulo de visualizaçãoMódulo de visualização• Comunicação entre os módulosComunicação entre os módulos• ConclusõesConclusões
55
Introdução ao jogoIntrodução ao jogoDamas3D
• Cada jogador começa com Cada jogador começa com 12 pecas, de uma determinada 12 pecas, de uma determinada cor, brancas ou pretas.cor, brancas ou pretas.
• O jogo efectua-se O jogo efectua-se movimentando as peças sobre movimentando as peças sobre as casas pretas e nas as casas pretas e nas diagonais, em direcção ao diagonais, em direcção ao adversário.adversário.
Regras
O jogo resume-se a um tabuleiro de 8x8 casas, alternadamente O jogo resume-se a um tabuleiro de 8x8 casas, alternadamente brancas e pretas, ordenadas alfabeticamente nas colunas e brancas e pretas, ordenadas alfabeticamente nas colunas e numeradas nas linhas.numeradas nas linhas.
66
Damas3D
• Jogada simples: Movimentação das peças para a casa Jogada simples: Movimentação das peças para a casa seguinte;seguinte;
• Jogada de comer: Comer uma peça adversaria, avançando Jogada de comer: Comer uma peça adversaria, avançando assim duas casas. Este tipo de jogada pode ser encadeado;assim duas casas. Este tipo de jogada pode ser encadeado;
• Jogada de dama: Quando uma peça atinge a última linha do Jogada de dama: Quando uma peça atinge a última linha do lado oposto, obtém-se a dama que se representa pela lado oposto, obtém-se a dama que se representa pela sobreposição de duas peças normais. Uma dama pode sobreposição de duas peças normais. Uma dama pode percorrer mais de uma casa e em qualquer sentido, percorrer mais de uma casa e em qualquer sentido, diagonalmente.diagonalmente.
Introdução ao Introdução ao jogojogo
O objectivo do jogo é impedir que o adversário tenha jogadas O objectivo do jogo é impedir que o adversário tenha jogadas possíveis.possíveis.A maneira mais fácil de conseguir este objectivo é comer as A maneira mais fácil de conseguir este objectivo é comer as peças todas do adversário.peças todas do adversário.
Objectivo do jogo
77
Damas3DDamas3D
• EnquadramentoEnquadramento• Introdução ao jogoIntrodução ao jogo• Módulo de lógicaMódulo de lógica• Módulo de visualizaçãoMódulo de visualização• Comunicação entre os módulosComunicação entre os módulos• ConclusõesConclusões
88
Módulo de lógicaMódulo de lógica Damas3D
Programa desenvolvido em Prolog.Programa desenvolvido em Prolog.
Este módulo contém o motor do jogo, implementando todos Este módulo contém o motor do jogo, implementando todos os predicados para a validação e efectuação de uma jogada, os predicados para a validação e efectuação de uma jogada, assim como a implementação de um modo em que o assim como a implementação de um modo em que o computador actue como um ou ambos os jogadores.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
99
Módulo de lógicaMódulo de lógica Damas3D
Destaca-se na imagem o modo de introdução das jogadas: Destaca-se na imagem o modo de introdução das jogadas: ColunaInicialLinhaInicial…ColunaFinalLinhaFinalColunaInicialLinhaInicial…ColunaFinalLinhaFinal
O jogador a efectuar a O jogador a efectuar a jogada é representado jogada é representado como “brancas” ou como “brancas” ou “pretas”“pretas”
Interface no módulo de lógica
1010
Damas3DDamas3D
• EnquadramentoEnquadramento• Introdução ao jogoIntrodução ao jogo• Módulo de lógicaMódulo de lógica• Módulo de visualizaçãoMódulo de visualização• Comunicação entre os módulosComunicação entre os módulos• ConclusõesConclusões
1111
Damas3DMódulo de Módulo de visualizaçãovisualização
Módulo desenvolvido utilizando a linguagem Java com as Módulo desenvolvido utilizando a linguagem Java com as extensões que possibilitam a criação e visualização de extensões que possibilitam a criação e visualização de mundos 3D (Java3D).mundos 3D (Java3D).
O ambiente de jogo consiste essencialmente de um O ambiente de jogo consiste essencialmente de um tabuleiro de damas em 3 dimensões, um marcador do tabuleiro de damas em 3 dimensões, um marcador do número de jogos ganhos por cada jogador, e um número de jogos ganhos por cada jogador, e um temporizador que marca o tempo para efectuar uma temporizador que marca o tempo para efectuar uma jogada.jogada.
A interacção com o utilizador baseia-se na utilização do rato A interacção com o utilizador baseia-se na utilização do rato para movimentar as peças no tabuleiro de jogo, devendo no para movimentar as peças no tabuleiro de jogo, devendo no caso de jogadas compostas o utilizador passar por todas as caso de jogadas compostas o utilizador passar por todas as casas que compõem a jogada.casas que compõem a jogada.
1212
Existe a possibilidade de mudar o aspecto do ambiente de Existe a possibilidade de mudar o aspecto do ambiente de jogo e de ver o filme do jogo.jogo e de ver o filme do jogo.
Módulo de Módulo de visualizaçãovisualização
Damas3D
1313
Damas3DDamas3D
• EnquadramentoEnquadramento• Introdução ao jogoIntrodução ao jogo• Módulo de lógicaMódulo de lógica• Módulo de visualizaçãoMódulo de visualização• Comunicação entre os módulosComunicação entre os módulos• ConclusõesConclusões
1414
Comunicação entre os Comunicação entre os módulosmódulos
Damas3D
A comunicação entre o módulo de lógica e o módulo A comunicação entre o módulo de lógica e o módulo de visualização efectua-se utilizando o Jasper, uma de visualização efectua-se utilizando o Jasper, uma interface fornecida pelo ambiente de interface fornecida pelo ambiente de desenvolvimento SICStus Prolog, que permite desenvolvimento SICStus Prolog, que permite construir uma aplicação que facilmente integra duas construir uma aplicação que facilmente integra duas linguagens de programação: Prolog e Java.linguagens de programação: Prolog e Java.
1515
Damas3DDamas3D
• EnquadramentoEnquadramento• Introdução ao jogoIntrodução ao jogo• Módulo de lógicaMódulo de lógica• Módulo de visualizaçãoMódulo de visualização• Comunicação entre os módulosComunicação entre os módulos• ConclusõesConclusões
• MelhoramentosMelhoramentos• ConclusõesConclusões
1616
MelhoramentosMelhoramentos Damas3D
• Utilização de sockets para comunicação entre os Utilização de sockets para comunicação entre os dois módulosdois módulos
• Melhorar funções de avaliação do mini-max;Melhorar funções de avaliação do mini-max;
• Melhorar o próprio algoritmo para cortes Alpha-Melhorar o próprio algoritmo para cortes Alpha-Beta.Beta.
1717
ConclusõesConclusões Damas3D
• A linguagem de programação Prolog adequa-se A linguagem de programação Prolog adequa-se perfeitamente ao tipo de aplicação que perfeitamente ao tipo de aplicação que pretendiamos desenvolver, tendo sido bastante facil pretendiamos desenvolver, tendo sido bastante facil a sua aprendizagem.a sua aprendizagem.
• O Java3D embora seja muito fácil de utilizar sofre O Java3D embora seja muito fácil de utilizar sofre de sérias lacunas ao nível da performance.de sérias lacunas ao nível da performance.
• A interface utilizada para ligar as duas linguagens A interface utilizada para ligar as duas linguagens de programação, o Jasper, revelou-se muito dificil de de programação, o Jasper, revelou-se muito dificil de utilizar, bem como pouco robusta.utilizar, bem como pouco robusta.
1818
Damas3DDamas3D
Nelson Jorge Silva Rodrigues – [email protected]
Ricardo Jorge Marques Veloso – [email protected]
Questões?