Karel J. Robot Simulator für vereinfachte Syntax

Der Simulator / Installation

Um den Simulator zu verwenden muß einfach das Zip-Archiv in das Arbeitsverzeichnis entpackt werden. Das ist das Verzeichnis von dem aus der Simulator gestartet wird. In diesem Verzeichnis sollten auch aller Welt- oder Taskdefinitionen stehen. Der Simulator benötigt JDK 1.3 (oder höher) bzw. die Java Runtime Umgebung der gleichen Version.

Es stehen zwei möglichkeiten zur Verfügung, den Simulator zu verwenden. Die erste ist über Kommandozeilenparameter. Gestartet wird der Simulator in beiden Fällen über ein Skript, das mit karelj aufgerufen wird (steht das Skript nicht zur Verfügung, wird der Simulator über java tud.inf.st.karelj.KarelJ gestartet). Achtung: bei der Batch Datei für Windows kann ich nur neun Parameter an das Programm weitergeben (-task inf1.task besteht schon aus zwei Parametern). Wenn mehr Parameter verwendet werden sollen, muß das Programme auch mit dem obigen Kommando gestartet werden. Es gibt folgende Kommandozeilenparameter:

  • -task Dateiname - Die Datei, die den Task enthält, der simuliert werden soll.
  • -welt Dateiname - Eine Datei, die eine Welt-Bescheibung enthält, in der der Task simuliert werden soll. Wird diese Option nicht angegeben, so wird eine leere Welt simuliert.
  • -klassenname Text - Der Name der Klasse, die aus der Taskdefinition erzeugt wird. Es wird eine Datei mit diesem Namen und der Endung .java erzeugt. Standard ist "KarelJTask".
  • -verzoegerung Zahl - Die Geschwindigkeit mit der sie Simulation ablaufen soll. 0 ist am schnellsten, 100 am langsamsten. Standard ist 10.
  • -breite Zahl - Die Breite, die die Simulierte Welt haben soll. Also die Anzahl der Avenues. Standard ist 10.
  • -hoehe Zahl - Die Höhe, die die Simulierte Welt haben soll. Also die Anzahl der Straßen. Standard ist 10.
    Der Aufruf


karelj -task sample.task -klassenname Task -welt square.world -verzoegerung 10 - hoehe 15 -breite 15
führt den Task aus, der in der Datei sample.task definiert ist. Am Anfang der Simulation wird die Welt-Definition aus der Datei square.world geladen, Aus dem Task wird die Java Klasse Task erzeugt und in die Datei Task.java geschrieben. Die Simulation wird mit der Geschwindigkeit 10 ausgeführt, und die Welt hat 15 Straßen und 15 Avenues.

Es steht außerdem eine graphische Benutzeroberfläche zur Verfügung. Diese wird gestartet, indem keine Kommandozeilenparameter gegeben werden.

karelj

In dem Fenster können alle oben beschriebenen Parameter ebenfalls eingestellt werden. Eine besonderheit stellt das Textfeld unten im Fenster dar. Dort werden Fehlermeldungen angezeigt, die sonst auf der Konsole ausgegeben werden. Die Simulation wird gestartet durch Drücken des Knopfes Starte Simulation. Dadurch können hintereinander mehrere Simulationen gestartet werden, ohne daß der Simulator neugestartet werden muß. Um das Textfeld zu leeren, kann einfach der Text markiert und gelöscht werden. Wenn die Simulation ausgeführt wird, werden alle Schritte des Roboters auf der Konsole mitprotokolliert.

Der Simulator erzeugt aus einer Task-Datei eine Java-Datei. Damit diese ausgeführt werden kann, muß sie noch compiliert werden. Falls sich Fehler in der Task-Datei befinden, kann das Compilieren der erzeugten Klasse fehlschlagen. Die Zeilenangaben des Compilers beziehen sich dann auf die erzeugte Datei. Deshalb bearbeitet der Simulator auch die Compiler-Fehlermeldungen und übersetzt sie in Zeilenangeben, die sich auf die Task-Datei beziehen. Es ist möglich, daß die berechneten Zeilenangaben nicht stimmen. In diesem Fall sollte der Fehler zumindest in der Nähe der angegebenen Zeile sein. Falls die bearbeitete Fehlermeldung gar nicht hilft, kann die erzeugte Java-Datei manuell compiliert werden, und der Fehler in der erzeugten Datei behoben werden. Der Compiler zeigt ebenfalls immer die Zeile an, in der der Fehler aufgetreten ist. Diese Zeile stammt auch aus der bearbeiteten Datei, es kann also vorkommen, daß diese Zeile anders aussieht als das Original aus der Task-Datei.