In diesem Abschnitt werden einige Beispiele für Hamsteraufgaben gegeben und eine oder mehrere Musterlösungen vorgestellt. Schauen Sie sich die Beispiele genau an und versuchen Sie, die Lösungen nachzuvollziehen.
Aufgabe:
Gegeben sei das Hamster-Territorium in
Abbildung
.
Der Hamster soll zwei Körner einsammeln.
Lösung 1:
void main()
{
// nehme erstes Korn
vor(); vor(); nimm();
// nehme zweites Korn
linksUm(); vor(); vor(); nimm();
}
Lösung 2:
void main()
{
// nehme erstes Korn
linksUm(); vor(); vor(); nimm();
// nehme zweites Korn
linksUm(); linksUm(); linksUm();
vor(); vor(); nimm();
}
Aufgabe:
Gegeben sei das Hamster-Territorium in
Abbildung
(links).
Der Hamster habe vier Körner im Maul. Er soll in jeder
Ecke des Territoriums eines ablegen und in seine Ausgangsposition
zurückkehren.
Nach Ausführung des Lösungsprogramms hat das Territorium das
Erscheinungsbild in
Abbildung
(rechts).
Lösung:
void main()
{
// begib dich an den Rand
vor(); linksUm();
// laufe in die rechte untere Ecke
vor(); vor(); vor(); vor(); gib(); linksUm();
// laufe in die rechte obere Ecke
vor(); vor(); vor(); gib(); linksUm();
// laufe in die linke obere Ecke
vor(); vor(); vor(); vor(); vor(); gib(); linksUm();
// laufe in die linke untere Ecke
vor(); vor(); vor(); gib(); linksUm();
// begib dich in deine Ausgangsposition zurueck
vor(); linksUm(); vor(); linksUm(); linksUm();
}
Aufgabe:
Der Hamster stehe vor einem Berg wie in
Abbildung
skizziert.
Der Hamster soll den Berg erklimmen.
Lösung:
void main()
{
// laufe zum Berg
vor();
// erklimme erste Stufe
linksUm(); vor(); linksUm(); linksUm(); linksUm(); vor();
// erklimme zweite Stufe
linksUm(); vor(); linksUm(); linksUm(); linksUm(); vor();
// erklimme dritte Stufe
linksUm(); vor(); linksUm(); linksUm(); linksUm(); vor();
// erklimme Gipfel
linksUm(); vor(); linksUm(); linksUm(); linksUm(); vor();
}