MC336 - Programação Lógica

Criada: 2007-08-01
Modificada: 2007-08-28

A linguagem escolhida para esta seção do curso é Prolog.

Usaremos a implementação SWI-Prolog.

Quase cem exercícios 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.


MC336 Home

© 2007 João Meidanis