Universidade de São Paulo
Instituto de Ciências Matemáticas e de São Carlos
Computação Departamento de Ciências da Computação e Estatística
Primeiro Semestre de 1999





SCE 5774 - Introdução à Inteligência Artificial
Profa.: Sandra Maria Aluísio
e-mail: sandra@icmsc.sc.usp.br
Aluno: Carlos Alberto Estombelo Montesco
e-mail: cestombe@icmc.sc.usp.br

Primeiro Projeto: Adventure Game(AG)

1. Enunciado do Problema

2. Considerações de AG em prolog

3. Documentação dos predicados

4. Características Necessárias para Resolução

5. Casos de teste do programa

6. Conceitos sob Prolog em Adventure Game
 

Adventure Game
Introdução



1. Enunciado do Problema

Um AG(Adventure Game) é a simulação de um ambiente real ou imaginário, que o usuário explora com uma meta na mente. É considerado como um tutor, porque interage com o usuário na exploração do ambiente.

Este ambiente apresenta informação inicial constituindo-se no estado inicial do ambiente, sendo que ele esta conformado de lugares e coisas com uma posição inicial determinada.
 

2. Considerações de AG em prolog

Para o presente caso especifico o ambiente estará constituído com as seguintes características e restrições :


3. Documentação dos predicados do Programa
 
 

 
Predicados do Programa Adventure Game
main predicado principal
init_dynamic_facts,  Estes fatos sao tudo sujeito a mudanca o jogo.
Este predicado e chamado quando nanisrch comeca
look olhar o ambiente
command_loop  repete ate o nani e achado ou ate  jogador deixaram
do Igualar os commandos de entrada com os predicados
nanifound, quit Estes sao os predicados que controlam saida do jogo se o jogador levou o Nani, entao a chamada para "have(nani)"va
tenher sucesso e o command_loop completarao.caso contrario falha e command_loop repetirao.
nshelp, hint O comando de Ajuda
room(office). door(office,hall). Fatos inicias que descrevem o mundo. Quartos e portas nao mudam, assim sao feitos.
look olhar lista de coisas em um quarto e as conexoes
look_in(Thing) permite para o jogador olhar dentro de uma coisa que pode
contenha outras coisas.
take(Thing) objeto pegado permite levar para o jogador.
inventory lista de inventario de suas possesoes.
puzzle(goto(cellar)) quebra-cabeca(Puzzle) em procura de Nani tem que ver com ir a cellar. 
respond respond - predicado que escrebe uma mistura de literals e variaveis como parametros
get_command Simple interprete de comandos em Ingles. Faz alguma verificacao semantica e permite varios sinonimos. Dentro de um subconjunto restringido de o Ingles.
readlist leia uma lista de palavras.
4. Caracteristicas necessárias para a resolução.

Temos representado os seguintes lugares:

Temos as seguintes conexões: 5. Casos de teste do programa

A seguinte figura mostra o proceso para rodar o programa no Win-Prolog 3.300, fazendo uso do predicado main. Apos issto aparecem as condições definidas para jogar no programa.
 



 


Os diferentes lugares onde o jogador pode trasladarse,  a sua localização no ambiente e as coisas que pode observar , são apresentadas na seguinte figura
 



 


Os diversos comandos que o jogador pode utilizar para realizar as ações na procura de atingir a meta desejada, podem ser vistas na figura a seguir.
 


A obtenção de Nani


 





C6. Conceitos sob Prolog em Adventure Game
 

Operadores Numéricos

Relacionais
Aritméticos

Estruturas de Dados

Listas

Predicados Incorporados

Entrada e Saída
 
get0(X) / get(X)
read(X)
put(X)
write(X)
display(X)
nl
tab(X)
skip(X)
Consulta e Inserção
consult(X)
reconsult(X)
listing(A)
asserta(X) / assertz(X)
retract(X)
Negação
not(X)

Repetição

repeat

Regras Gramaticais

Controle de Programa
Backtracking
Cut
Recursividade
Fail
Combinação Cut - Fail