Na aula de hoje, desenvolveremos o Tutorial 2 do Soar. Particularmente, utilizaremos o Soar para controlar o comportamento de criaturas artificias bem simples, os assim chamados "Eaters" em um jogo do tipo Pacman. Para tanto, utilizaremos o mecanismo de estados e operadores do Soar para diagnosticar o estado de cada Eater, propor diferentes tipos de ações a cada instante e mostrar como o Soar faz para interfacear com o jogo, para controlá-lo de fato.
Execute os passos para inicializar o jogo Eaters, conforme consta no Tutorial 2 do Soar, e crie uma criatura com as regras move-to-food.soar. Execute o programa e explique o que acontece quando o programa é executado. Clique em Reset, e execute agora o programa passo a passo, para entendê-lo melhor. Clone o agente, e refaça a simulação. Edite o programa move-to-food.soar com o Visual Soar e tente entender sua lógica. Como o estado atual da criatura é considerado nas regras ? Como a decisão de ação escolhida é aplicada de fato ao jogo ? Como esse conjunto de regras escolhe a direção para a qual a criatura deve se mover ? Para que serve a regra apply*move-to-food*remove-move ? O que aconteceria se ela não existisse ? Quais são as limitações desse programa ? O que seria necessário fazer para que ele não ficasse paralizado, depois de um tempo ?
Documente a atividade em seu relatório, respondendo as perguntas acima.
Execute as atividades descritas nas seções de 2 a 5 do Tutorial, para consolidar seu conhecimento sobre:
Documente suas atividades no relatório
Desenvolva um programa Soar que não fique "preso" em posições que não contenham comida, que sejam capazes de executar jumps e que não fiquem "indo e voltando" caso tenham se movido para uma determinada direção (seções 6 a 8 do tutorial).
Utilizando a estrutura top-state descrita na seção 10 do tutorial, tente desenvolver um conjunto de regras Soar que sistematicamente busque por comida quando estiver cercado por células sem comida.
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer