Dokumentation Fidel

Autoren des Hamsters: Troschi und Gunni

alle Informationen sind auch direkt im Quelltext enthalten

die Grundidee ist recht einfach: Fidel tastet sich per Zufall durch das Labyrinth. In jedem Zug, wird die Richtung zufällig verändert. Dadurch bleibt Fidel nicht irgendwo stecken, bzw. läuft im Kreis. Das 'Finden' des Heimwegs ist auf die einfachste Art gelöst: Jede Drehung und jeder Schritt werden in einem Stack gespeichert, der dann seitenverkehrt wieder abgebaut wird. Das erzeugt zwar viele (leider) unnötige Schritte, aber auf diese Weise findet Fidel auf jeden Fall nach Hause.

public void run()

Fidel dreht sich erstmal einmal rum, um zu überprüfen, ob das Startfeld nur von Mauern umgeben ist, rennt dann solange, bis fertig auf true gesetzt wird, und zwar wird eine Zufallszahl bestimmt, die später noch für die Drehung gebraucht wird, gesammelt, ein Schritt vorwärts gemacht (oder eine Drehung) und dann wird noch einmal zufällig gedreht.

private void drehEinMalRum()

Um zu überprüfen, ob Fidel nicht auf dem Startfeld eingesperrt ist, dreht er sich erstmal um die eigene Achse. Wenn überall nur Wände sind, wäre es ja sinnlos, überhaupt loszulaufen...

private void vorwaerts()

Vorwärts. Hier wird die Bewegung und die erste Drehung vollzogen. Wenn keine Wand im Weg ist, vor! sollte eine da sein, dreht sich Fidel entsprechend der vorher ermittelten Zufallszahl. Sollte die Anzahl der bisher gemachten Schritte größer als 5000 sein, geht Fidel nach Hause und macht Schluss. Dies verhindert, dass es zu viele Minuspunkte gibt.

private void nachHause() Die Heimkehrmethode ist sehr simpel. Jede Bewegung wurde vorher in einem Stack gespeichert und wird umgekehrt wieder ausgeführt. Drei mal turn wendet den Hamster, aus links wird rechts und umgekehrt. Sobald der Hamster wieder auf dem Startfeld ist, wird alles abgeladen und zu Sicherheit der Stack geleert.
private void ablegen()

Eigentlich selbsterklärend; wenn Fidel zu Hause ist, legt er alle Körner ab, die er so mit sich rumträgt.

private void drehZufall()

Die Zufallsdrehung: Zuerst wird eine Zufallszahl bestimmt. Dann wird anhand dieser Zahl eine von drei möglichen Aktionen ausgeführt: Nichts; Drehung nach links oder Drehung nach rechts.

private void sammeln()

Sammeln, futtern, bunkern,...
Sollte Fidel grade zu Hause sein, legt er natürlich alles ab, ansonsten packt er sich erstmal alles in die Backen, was er tragen kann. Wenn kein Platz mehr für weitere Körner ist, geht er nach Hause.