Vorbereitung: 1. Erstellt Euch ein Verzeichnis AUFGABE4 in Eurem Home Verzeichnis und speichert die Dateien robots-fragments.nsp, pstricks-fragments.nsp, loader.nsp und example.nsp darin ab. 2. Kopiert Euch die Datei ~lispprak/nisp-init.nsp in Euer Homeverzeichnis, falls die Datei dort noch nicht vorhanden ist. Fuegt zusaetzlich eine logischen Pfadnamen fuer das Verzeichnis AUFGABE4 an. Vorsicht der richtige Pfadnamen muss mit "/" enden. Beispiel: (DEF-NISP-LOGICAL-NAME AUFGABE4 "/home/my-name/AUFGABE4/") 3. Ihr koennt das Programmfragment mit (DSKLAP AUFGABE4/ LOADER) laden. Eigentliche Aufgabe: 1. Spezifiziert den Datentyp "robot", der in der Datei robots-fragments.nsp als forward deklariert wurde. Der Datentyp soll fuer jeden Roboter einen Namen und das Fussballteam des Roboters als Symbole speichern. Der Roboter hat einen "body". Hierfuer ist der Typ bereits definiert. Ausserdem sollt ihr das letzte Perzept (Typ vorhanden) und die ausgewaehlte Aktion abspeichern. - Neben den Slots, die Ihr definieren muesst, sollt Ihr noch einen print handler und einen Konstruktor fuer robot realisieren. 2. Definiert eine Fussballszene mit Hilfe des makros GAME-SITUATION. Hier ist ein Beispiel: (GAME-SITUATION (WITH-TEAMS (AGILO PIONEER) (SPARROWS NOMAD) (AGILO-1 -400.0 0.0 90.0) (AGILO-2 -250.0 -100.0 0.0) (AGILO-3 -250.0 100.0 0.0) (AGILO-4 -80.0 -40.0 20.0) (SPARROWS-1 400.0 0.0 180.0) (SPARROWS-2 250.0 20.0 190.0) (SPARROWS-3 170.0 -100.0 180.0) (SPARROWS-4 90.0 150.0 180.0) )) Expandiert das Beispiel mit der Funktion MACRO-EXPAND-EXP und schaut Euch den resultierenden Code an. 3. Baut eine Fehlerbehandlung in das Makro GAME-SITUATION in der Datei robots-fragment.nsp ein. Die Fehlerbehandlung soll zum Beispiel erkennen, wenn ein nicht existierender Roboter auf das Feld gestellt wird, wenn ein Roboter ausserhalb des Spielfelds positioniert wird usw. 4. Implementiert die Funktion draw-robot. Sie soll eine Zeile der folgenden Form in die Latex Datei schreiben. \pioneerrobot{AGILO-3}{-250.0}{100.0}{0.0}{red} robottype name x y o color 5. Schreibt eine Routine GET-PERCEPT, die die Perzeption eines Roboters simuliert. Der Roboter uebersieht einen Roboter mit 10 Prozent Wahrscheinlichkeit. Mit 10% Wahrscheinlichkeit wird ein Roboter und mit 5% 2 Roboter simuliert. Die Ungenauigkeit der Messungen liegt zwischem 0 und 25cm und ist gleichverteilt. GET-PERCEPT soll den Slot PERCEPT von robot setzen.