Criada: 2007-08-01 Modificada: 2007-08-28
A linguagem escolhida para esta seção do curso é Prolog.
Usaremos a implementação SWI-Prolog.
Livro-texto para Prolog: Programming in Prolog, W.F.Clocksin, C.S.Mellish, Springer-Verlag, 5ª edição, 2003. ISBN: 3-540-00678-8.
O jogo a ser implementado neste semestre será o Bloxorz.
A codificação de um jogo em Prolog será através de um termo
t(T,b(X,Y))
, onde T
é uma lista contendo as
posições existentes, e X, Y
são as coordenadas do
buraco. A posição inicial do bloco é sempre (0,0). Tanto a casa
inicial quanto a final devem estar no tabuleiro, em qualquer posição.
Cada aluno deverá implementar um módulo que exporte os predicados
bolar(-Jogo,-Solucao)
e resolver(+Jogo, -Solucao)
.
O primeiro, ao ser chamado, retorna um
Jogo
codificado como acima, e uma Solucao
codificada como uma lista de átomos n, s, l, o
,
significando um movimento em direção ao norte, sul, leste ou oeste,
respectivamente. O segundo predicado recebe um Jogo
e
retorna uma Solucao
para ele.
Os jogos não poderão ter mais do que 1000 casas.
Para implementar um módulo, basta colocar logo no início do programa uma linha da forma:
:- module(nome, []).
onde nome
é o nome de seu jogador, que deve ser o
mesmo que o nome do arquivo (só que o nome do arquivo deve ter a mais
a extensão .prolog), e que deve ser da forma raNNNNNN_XXX...X, com seu RA
e um complemento qualquer XXX...X para diferenciar seus vários jogadores,
caso você os tenha.
Até o dia da prova é obrigatório entregar pelo menos um jogador que não cometa erros. Depois disso haverá mais tempo para aperfeicoá-lo.
Os jogos já começaram!! Veja o aquecimento.
© 2007 João Meidanis