Cette applet permet d'illustrer le fonctionnement d'un agent cognitif dans un cadre contraint mais dynamique. Contrairement aux agents réactifs, les agents cognitifs planifient leurs actions avant de les exécuter. Cette applet permet de voir évoluer le cerveau du personnage selon ses objectifs.
Dans tous les cas, l'objectif initial de l'agent chevalier est toujours d'aller rejoindre la princesse. L'environnement est constitué de pièces auxquelles on peut accéder par des portes. Ces portes peuvent être soit ouvertes, soit fermées, soit verrouillées. Dans ce dernier cas, les clés permettant de les déverrouiller peuvent être placées n'importe où. Tant qu'il n'est pas passé à proximité d'une porte, l'agent ne sait pas si celle-ci est ouverte ou fermée ni même avec quelle clé l'ouvrir. En situation de recherche, le chevalier préfère explorer les couloirs proches que d'essayer de franchir une porte (qui peut s'avérer difficile à ouvrir).
La planification est ici très simple. Elle se base sur une pile dans laquelle l'agent empile ses buts successifs. La fenêtre de droite permet de visualiser son état de réflexion (une planification de type arbre de buts Et/Ou est évidemment possible mais beaucoup plus coûteuse puisqu'elle oblige à prendre en compte tous les cas possibles dans un même raisonnement). Au départ seul aller vers la princesse est empilé. Au fur et à mesure des difficultés et découvertes que rencontre le personnage, il empile de nouveaux buts. Bien sur, pour supprimer un but du haut de la pile, il faut qu'il soit satisfait. Quelques options sont disponibles pour modifier son raisonnement :
Vous voici avec entre les mains un personnage capable de suivre 16 comportements différents. A vous de voir maintenant si vous raisonnez aussi bien que lui ! Dans chaque situation posez vous la question : Que doit-il faire maintenant ?
Pour profiter pleinement de l'applet la résolution de votre écran doit être supérieure à 775 pixels de large par 560 pixels de haut.
En cas cas de problème avec les Applets sous Micro$oft Windows il est possible d'essayer la méthode suivante :