/*
* DOKUMENTATION
*
* Einfacher Hamster Picard
* Version: 2.1_final
* Autor: Martin Kuhlemann
*
* Der Hamster Picard erkundet erst das Homefield und sucht sich dann das
* nachstgelegene noch unbesuchte Feld. Sollte er auf diesem Weg Kornfelder
* entdecken, bringt er die Koerner auf sein Homefield.
* Der Hamster erkundet jedoch nur Felder, die weniger als 100 Schritte vom
* Homefield entfernt sind, da sonst die Schritte, die noetig sind um
* eventuelle Koerner zu holen mehr Punkte kosten, als die Koerner bringen
* koennen, denn der Hamster kann hoechstens 20 Koerner tragen und mit denen
* 200 Punkte machen, wenn jetzt aber das Kornfeld mehr als 99 Schritte vom
* Homefield entfernt ist, verursachen die Schritt-Minuspunkte(hin und zurueck,
* dass sich der Weg nicht gelohnt hat.
* Felder, die mehr als 99 Schritte vom Homefield entfernt sind, werden aber
* nicht geloescht, sondern verbleiben in der Liste, da sich durch weitere
* Entdeckungen ein kuerzerer Weg zu ihnen ergeben kann, der sich dann wieder
* lohnt.
* Sind auf einem Feld mehr Koerner, als der Hamster tragen kann, legt er beim
* nach Hause gehen einen roten Faden, den er solang hin und zurueck geht, bis
* auf dem Feld kein Korn mehr zu holen ist.
* Der Hamster berechnet dadurch die effektivsten Wege, dass er vom Zielfeld
* ausgehend die Felder mit Distanzen bezueglich des Zielfeldes belegt.
* Dann braucht er nur noch dem Weg zu folgen, der die geringste Distanz zum
* Zielfeld aufweist. Solange bis die Distanz zum Homefield gleich null ist,
* d.h., dass der Hamster sich auf dem Zielfeld befindet, dabei kann er auch
* ueber Felder laufen, die er bisher nur gesehen, aber weder betreten noch
* erkundet hat. Sollten auf einem solchen Feld wieder Koerner zu finden sein,
* wird die Position des Feldes wiederum gespeichert und spaeter abgearbeitet.
*
* Die Blickrichtungen sind folgendermaßen definiert:

* Das Konvertieren von der Karte, bestehend aus Sechsecken, zu einem Array hat
* man sich volgendermassen vorzustellen, wobei 28, 29, 30... die Array-Indizes
* darstellen:

* Wie auch jeweils direkt ueber den Methoden beschrieben, ergeben sich durch die
* Verzerrung des Arrays andere Karten-Indizes, als beim nach Norden gehen(goN())
* auch nur im Array eine Zeile hoeher zu gehen, vielmehr ist am Beispiel nach
* Norden zu gehen im Array noetig eine Zeile nach oben und eine Spalte nach links
* zu gehen, d.h. die Hamsterposition aendert sich dahingehend, dass die X- und Y-
* Position um eins verringert werden muessen.
* Aehnliche Regeln gelten fuer das bewegen in andere Richtungen.
* Fuer naehere Informationen siehe aber bitte die Kommentare in den Klassen, in
* diesem Fall in der Karte.java
*
* Picard Ende.
*/
Martin Kuhlemann