Animando o movedor de blocos (§2.19) usando gráficos de personagens
Esta seção usa o planejador de ação de blocos da Seção 2.19 e o protótipo de interface de comando e pergunta idiomática em inglês da Seção 7.3. Nesta seção, adicionamos um animador (bem como na seção anterior 8.2) que incorpora o planejador de blocos e o comando de linguagem natural e interface de pergunta. Se o usuário executar o programa em uma janela de terminal, verá inicialmente algo como o seguinte ...
?> Put a on c and c on b.
---------
| |
| a |
| |
---------
---------
| |
| b |
| |
---------
---------
| |
| c |
| |
---------
=================================
Fig. 8.3
O usuário insere comandos ou perguntas após o prompt no canto superior esquerdo da tela (entrada de amostra fornecida acima). Para os comandos reorganizarem os blocos, o sistema analisa a entrada, gera uma lista de objetivos, tenta calcular um plano para cumprir a lista de objetivos e, em seguida, executa o plano para cálculos bem-sucedidos; caso contrário, o sistema informa ao usuário que o comando não é possível. O sistema também deve responder a algumas perguntas.
- O leitor é aconselhado a carregar o código do Prolog para esta seção e a tentar digitar várias entradas, usando os idiomas da Seção 7.3.
- O animador gráfico é bastante semelhante ao da Seção 8.2 e não será discutido em detalhes. Consulte o código do Prolog para obter as especificações.
- Os exercícios pedem ao leitor para adicionar vários comandos ou expressões idiomáticas de pergunta ao animador.
Exercício 8.3.1 Incorpore o idioma da pergunta do Exercício 7.3.1.
Exercício 8.3.2 Incorpore o idioma de pergunta do Exercício 7.3.2.
Exercício 8.3.3 Incorpore o idioma de pergunta do Exercício 7.3.3.
Exercício 8.3.4 Elabore uma maneira de adicionar explicações ao movedor de blocos desta seção de modo que quando o usuário solicitar um rearranjo inválido e for informado de que a tarefa não pode ser concluída, se for perguntado "Por quê?", O sistema fornece uma explicação de por que a solicitação do usuário não pode ser realizada.
Veja Também
- Código do Prolog para o protótipo do movedor de blocos desta seção
- Código do Prolog para o 'read_line'.
- 2.19 Ações e Planejamento
- 7.3 Comandos idiomáticos em linguagem natural e interfaces de perguntas
- 8.2 Animando o 8-puzzle (§5.2) usando gráficos de personagens
- 8.4 Um Jogo da Velha contra o oponente do Prolog (§5.3) com Java GUI
- Prolog Tutorial Sumário