Konstruktor:
public
LinkedField(LFNode homeField)
Konstruktor zum Erzeugen einer Datenstruktur für eine Labyrinth-Karte
Methoden:
public void
addField( LFNode field, byte direction, String kindOf)
fügt ein neues Feld hinzu, falls das Nachbarfeld noch nicht in der Karte existiert. Dabei wird darauf geachtet, ob Klippe oder Wand zwischen den Feldern ist.
public LFNode nextNode(LFNode current, byte direction)
gibt das Feld zurück, welches sich in Richtung direction befindet. Gleichzeitig werden die Koordinaten des Arrays aktualisiert.
public void calcXY(byte direction)
errechnet neue Koordinaten eines Nachbarfeldes in Richtung direction abhängig von der Hamsterposition.
public void calctempXY(byte direction)
errechnet neue Koordinaten eines Nachbarfeldes in Richtung direction abhängig von einer imaginären Position.
public void
fieldToVisit()
errechnet die Koordinaten wo sich das nächstgelegene unerkundete oder nicht komplett leere Feld befindet.
public
boolean isAlready(LFNode field, byte direction)
gibt true zurück, wenn bereits ein Feld in Richtung direction verlinkt ist.
public
LFNode isAlreadyPointed(LFNode field, byte direction)
gibt den Nachbarknoten in Richtung direction zurück; null falls Knoten noch nicht vorhanden.
public
Stack nextRoute(LFNode field, byte direction)
gibt Stack zurück in dem sich eine Wegbeschreibung mittels Richtungsangaben für jedes Feld befindet. Dabei wird der kürzeste Weg, der zum nächsten unbesuchten oder nicht leeren Feld gefunden wird, zurückgegeben.
public void
nextRouteDeep(LFNode field, byte direction, int steps)
rekursive Methode die den kürzesten Weg sucht.
public
Stack nextHome(LFNode field, byte direction)
gibt Stack zurück in dem sich eine Wegbeschreibung mittels Richtungsangaben für jedes Feld befindet. Dabei wird der kürzeste Weg zum Heimatfeld der gefunden wird, zurückgegeben.
public void
nextHomeDeep(LFNode field, byte direction, int steps)
rekursive Methode die den kürzesten Weg zum Heimatfeld sucht.
public byte
calcDir(byte origindir, byte calcDirection)
gibt Richtung zurück, in die der Hamster schauen würde wenn er sich aus Position origindir calcDirection-mal drehen würde. Vorzeichen + ist Rechtsdrehung, -Linksdrehung.
public
Stack reverse(Stack toReverse)
vertauscht die Richtungsangaben des Stacks toReverse.