Java Reference
In-Depth Information
sich der Hamster so oft linksum drehen, wie die Differenz der beiden Werte ausmacht. Im anderen
Fall addiert er vorher einfach 4 zum Wert der neuen Blickrichtung hinzu. Damit die Formel für
beide Fälle gleich ist, wird auch im ersten Fall 4 zur neuen Blickrichtung addiert und die Differenz
anschließend modulo 4 genommen.
16.5.2 Beispielprogramm 2
Mit Hilfe von Parametern können wir Beispielprogramm 3 aus Kapitel 14.10.3 lösen, ohne globale
Variablen benutzen zu müssen.
Aufgabe:
Der Hamster befindet sich in einem geschlossenen, rechteckigen Territorium unbekannter Größe. Im
Innern des Territoriums befinden sich keine weiteren Mauern. Auf irgendeinem Feld des Territori-
ums liegt ein Korn. Der Hamster befindet sich anfangs in der linken unteren Ecke des Territoriums
mit Blickrichtung Ost (siehe Beispiele in Abbildung 14.10 (links)). Der Hamster bekommt die Auf-
gabe, das Korn zu finden und zu fressen.
Abbildung 16.3: Typische Hamster-Landschaften zu Beispielprogramm 2
Die angegebene Lösung der Hamster-Aufgabe basiert auf der Idee, dass der Hamster das Territorium
in zyklischen Kreisen abgrast. Irgendwann stößt er dann zwangsläufig auf das Korn und frisst es.
Lösung:
void main() {
/*
* lokale Variable;
* speichert die Groesse des aktuellen Radius
*/
int radius = 1;
while (!kornDa()) {
// radius wird als Parameter uebergeben
testeEinenKreis(radius);
// nach jeder Runde wird der Radius ein Feld groesser
radius++;
}
nimm();
 
Search WWH ::




Custom Search