You are on page 1of 1

Faculdade de Engenharia da Universidade do Porto

2004/2005
Licenciatura em Engenharia Informática e Computação
LEIC
Programação em Lógica (3º Ano)
1º Sem
Laboratórios de Aplicações de Software
Docentes: Luís Paulo Reis, Eugénio Oliveira e Rui Camacho
Protocolo de Comunicação entre os Trabalhos Práticos das Disciplinas

Ligação Visualizador – Aplicação Prolog


Este documento contém uma sugestão simples de implementação do Protocolo de Comunicação entre os
Trabalhos Práticos Nº1 de Programação em Lógica (PL) e Nº2 de Laboratórios de Aplicações de Software
(LAS). O protocolo de comunicação entre a aplicação Prolog (desenvolvida em PL) e o visualizador gráfico
3D (desenvolvido em LAS) deve ser baseado nas sugestões apresentadas em seguida. No entanto, os alunos
podem adaptar o protocolo tendo em conta a especificidade do seu trabalho. Na implementação da
comunicação entre as duas aplicações devem ser utilizados sockets e deve ser utilizada a porta 60000 em todas
as comunicações no visualizador e a porta 60001 no simulador (aplicação Prolog). Todas as comunicações
devem ser sempre iniciadas pelo visualizador utilizando uma das seguintes mensagens: initialize, execute,
calculate, game_end ou bye. O Simulador (aplicação Prolog) deve responder a todas as mensagens recebidas
como indicado na tabela 1.

Visualizador à ß Simulador
Início da Comunicação
initialize à // Início da comunicação
ß ok(Board) // Resposta contendo o tabuleiro inicial
Pedido de Execução de Jogada do Humano
execute(Mov, Board) à // Pedido de execução da jogada Mov no tabuleiro Board
ß ok(Board) // Jogada válida. Resposta com o novo tabuleiro
ß invalid // Jogada inválida
Pedido de Cálculo de Jogada
calculate(Level,, Jog, Board) à // Pedido de cálculo de jogada para o jogador Jog
ß ok(Mov, Board) // Jogada possível. Responde com jogada e novo tabuleiro
ß invalid // Jogada impossível
Verificação do Final do Jogo
game_end (Board) à // Verificação se o jogo terminou
ß ok(Winner) // Jogo terminou. Responde com o vencedor ou 0 (empate)
ß invalid // Jogo não terminou.
Final da Comunicação
bye à // Final da comunicação
ß ok // Comunicação finalizada
Tabela 1: Detalhe do Protocolo de Comunicação
Outras mensagens podem ser adicionadas ao protocolo, como por exemplo o pedido da avaliação do tabuleiro
ou da lista de jogadas válidas ao simulador. Outros parâmetros podem também ser adicionados às mensagens
sugeridas na tabela 1 de forma a completar o protocolo.
Luís Paulo Reis - FEUP/2004 Pág. 1/1

You might also like