Starten könnt ihr es so (oder mit dem
Script world):
Unix/Linux:
java -classpath contest.jar:hamster algds.contest.World
Windows:
java -classpath contest.jar;hamster algds.contest.World
Es hat die Menus World, Maze und Hamster.
About... | Autor und Version des Programms. |
Clear log | Leert das Feld mit den Statusanzeigen. |
Pack | Setzt die Grösse des World-Fensters auf einen optimalen Wert. Diese Optimalgrösse hängt vom Status der Auswahllisten ab, ist Edit Wall ausgewaehlt, sind die Listen am breitesten. Auch die Grösse des Labyrinth-Fensters wird angepasst. |
Exit | Beendet das Programm. Ein verändertes Labyrinth wird NICHT automatisch gespeichert. |
New... | Erzeugt ein neues Labyrinth mit anzugebender Grösse. Ein neues
leeres Labyrinth hat nur eine Ebene, keine Wände, keinen Mais und keine
Beamer, Heimatfeld und (0,0)-Feld sind links oben.
Die Grösse eines Labyrinths kann derzeit nicht nachträglich geändert werden. |
Load... | Lädt ein Labyrinth. Öffnet ein Dialogfenster, in dem man es auswählen kann. |
Reload | Lädt das erfolgreich geladene Layrinth nochmal. Nach einem Lauf des Hamsters wird das Labyrinth nicht automatisch neu geladen. |
Save | Speichert das Labyrinth unter dem aktuellen Namen. Ist das Labyrinth neu, kann man einen Namen auswählen wie bei Save as... |
Save as... | Speichert das Labyrinth unter einem neuen Namen. Öffnet ein Dialogfenster,
in dem man den Namen auswählen kann.
Die Labyrinth-Dateien (mit der Endung ".maze") sollten im Verzeichnis "mazes" abgelegt werden, weil MazeRunner und MazeRunnerX sie von dort laden. |
Visible | Setzt im Labyrinth den Status "gesehen". Wenn der Hamster seinen Lauf beginnt, wird im Labyrinth der Status "ungesehen" gesetzt. Dadurch kann man verfolgen, wo der Hamster schon war. |
Properties | Setzt einige Eigenschaften des Programms. Beschreibung ist ein Stück weiter unten. |
Load... | Lädt einen Hamster, dessen Klassennamen man angibt. |
Reload | Lädt den Hamster nochmal. Wenn der Hamster seinen Lauf beendet, wird er nicht automatisch neu geladen. |
Mute | Der Hamster produziert mit seinen log-Methoden (z.B. log(String)) nur dann eine Ausgabe, wenn diese Option ausgeschaltet ist. Damit kann der Hamster "stummgeschaltet" werden. |
Verbose | Die Hamster-Methode debuglog(String) produziert nur dann eine Ausgabe, wenn diese Option eingeschaltet ist. |
Follow | Ist diese Option aktiviert, folgt die Labyrinth-Anzeige dem Hamster, wenn er den gerade angezeigten Bereich verlässt. |
Beim ersten Start der World erscheint die Meldung "cannot read world.ini". Das bedeutet, dass die Ini-Datei noch nicht existiert. Geht ins Menu Maze/Properties, tragt euren Namen als Creator ein und klickt auf Save und dann auf OK. Eine Beschreibung der Elemente dieses Dialogfensters ist nachstehend.
Der Menu-Eintrag Maze/Properties öffnet ein Dialogfenster, das bestimmte Eigenschaften des Programms setzt:
Wenn ihr ein Labyrinth geladen habt, öffnet sich ein Fenster, in dem es
angezeigt wird.
Ihr könnt nun einen Hamster laden oder das Labyrinth editieren.
Weisse Felder sind leer, auf orangen Feldern liegt Mais, der
durch einen Kreis angezeigt wird. Die Grösse des Kreises hängt vom
Maisvolumen auf dem Feld ab. Es wird aber ab einem Volumen von 20 nichts
grösseres mehr angezeigt. Graue Linien bezeichnen einen
Durchgang zwischen zwei Feldern, blaue Linien repräsentieren
Wände. Das gekreuzte Feld (hier in der Mitte) ist das Feld, das
die logischen Koordinaten (0,0) in der Ebene hat, der Mauscursor ist hier
z.B. über dem Feld (9,6), der Hamster würde auf dem Feld aber als
Koordinaten die Werte (4,1) übergeben kriegen. Das umrahmte Feld
(hier rechts oben) ist das Heimatfeld des Hamsters. Auf dem startet er, und
da muss er den Mais hinbringen. Der rote Dreiviertelkreis stellt den
Hamster dar, wobei die Öffnung des Kreises in seine aktuelle
Blickrichtung weist. Ihr könnt in den
Properties auch einstellen, dass der Hamster durch
ein Hamsterbild dargestellt wird.
Rote Zahlen bezeichnen Beamer.
Der Wert -1 steht für einen halben Beamer (diese werden beim Lauf
ignoriert), Zahlen ab 0 treten paarweise auf und bezeichnen die beiden Enden
eines Beamers.
Wenn ihr mit der Maus über das Labyrinth geht, wird in der untersten Zeile der Statusanzeige der Mais und die Koordinaten des Feldes angezeigt, über dem die Maus gerade ist. Der Rest der Statusanzeige ist weiter unten erklärt. |
Zum Editieren der Level wählt ihr eine Funktion aus der mittleren
Liste aus.
Edit Wall:
Klickt mit links auf einen Zellenrand, um eine Wand zu setzen, mit rechts, um sie zu entfernen. |
||||
Edit Corn:
Wählt aus der rechten Liste die Korngrösse und -anzahl aus, die ihr pro Klick setzen oder löschen wollt. Mit der linken Maustaste könnt ihr Mais ablegen, mit der rechten entfernen. Das Maisvolumen wird durch die Grösse des Kreises angezeigt. |
||||
Edit Beamer:
Wählt aus der rechten Liste eine Funktion aus:
Halbe Beamer haben alle die Nummer -1, komplette Beamer werden fortlaufend
nummeriert, beide Hälften des Beamers haben die gleiche Nummer. Die
Nummern gelöschter oder getrennter Beamer werden nicht neu vergeben.
Erst beim Laden oder Neuanlegen eines Labyrinths werden die Beamer neu
durchnummeriert.
|
||||
Edit Home:
Wählt aus der rechten Liste, ob ihr das Heimatfeld oder das Zentrum der Ebene setzen wollt. Vom Heimatfeld startet der Hamster und dorthin bringt er seinen Mais, das Zentrum einer Ebene ist das Feld, das die logischen Koordinaten 0,0 hat. |
Habt ihr das Labyrinth verändert, dann speichert es, bevor ihr den Hamster startet, denn das Labyrinth wird vom Hamster verändert und nicht zwischengespeichert!!
energy: | Die aktuelle Energie des Hamsters | score: | aktuelle Punktzahl |
carry: | Mais, den der Hamster trägt | steps: | aktuelle Schrittzahl |
avail: | Mais, der auf dem Feld liegt, auf dem der Hamster gerade ist | turns: | aktuelle Anzahl der Drehungen |
coll: | Mais, den der Hamster auf dem Heimatfeld angesammelt hat | logische Koordinaten und Richtung des Hamsters | |
field: | Mais, der auf dem Feld liegt, auf das die Maus zeigt | Koordinaten des Feldes, auf das die Maus zeigt, als Realkoordinaten und als logische Koordinaten |
Die Mais-Anzeige enthält die Gesamtgrösse und in den Klammern die einzelnen Körner-Anzahlen von 1 bis CORNSIZE_MAX. Logische Koordinaten sind die, die der Hamster erhält, wenn er getX(), getY() und getLevel() aufruft (wobei die logische Levelnummer mit der realen übereinstimmt). Wenn der Hamster beginnt, wird das Labyrinth grau eingefärbt, um anzuzeigen, dass er noch nirgends war. Während der Hamster läuft, werden die Felder hellgrau, die er gesehen hat, und die Felder, die er bereits betreten hat, werden weiss. |
Die Bedeutung der Symbole im Labyrinth ist weiter oben erklärt.
Wenn der Hamster seine Suche beendet, muss man ihn oder einen anderen neu laden, damit man wieder einen Hamster durchs Labyrinth schicken kann. Ausserdem muss man das Labyrinth neu laden. Das geschieht nicht automatisch, damit man sehen kann, was der Hamster "angerichtet" hat.
Ihr könnt den Hamster auch mit dem Stopbutton stoppen. Wenn euer Hamster so funktioniert wie er soll, dann beendet er kurz danach seinen Lauf. Wenn nicht, dann klickt nochmal auf Stop, und der Hamster wird gekillt. Das funktioniert jedenfalls mit unseren Testhamstern unter Windows.