Erkundung – Kara trifft Entscheidungen
Zielsetzung
Auf dieser Seite bearbeitest du ein Problem, das sich von den bisherigen unterscheidet. Du wirst erkennen, dass du zur Lösung einen neuen Befehl benötigst, und erste Erfahrungen mit diesem Befehl machen.
Das Problem: Ein Kleeblatt suchen
Kara steht vor ihrem/seinem Bau und möchte das Kleeblatt, das sich irgendwo im Bau befindet, nach draußen befördern.
Kara soll hier im Vorfeld nicht wissen, wo sich das Kleeblatt befindet. Kara muss also in den Bau hineingehen und je nach vorgefundener Situation entscheiden, wie es weitergehen soll. Hierzu muss Kara in der Lage sein zu überprüfen, ob sie/er sich auf einem Kleeblatt befindet.
Aufgabe 1: Anweisungssequenzen kommen an ihr Ende
Erkläre kurz, warum du dieses Problem nicht nur mithilfe von Anweisungssequenzen lösen kannst.
Aufgabe 2: Ein Lösungsverfahren entwickeln
Hier ist ein Lösungsverfahren mit Fallunterscheidungen vorskizziert:
Schritt weitergehen WENN auf einem Kleeblatt: Kleeblatt aufheben rechts drehen rechts drehen Schritt weitergehen SONST: Schritt weitergehen WENN auf einem Kleeblatt: ... SONST: ... Kleeblatt hinlegen
Überlege dir, wie es weitergehen könnte. Ergänze hierzu die fehlenden Teile. Achte auf die Einrückungen, um die verschiedenen Fälle deutlich zu unterscheiden.
Aufgabe 3: Ein Lösungsverfahren in Python formulieren
Das Lösungsverfahren soll jetzt in der zur Steuerung von Kara verwendeten Programmiersprache (Python) formuliert werden. Ergänze den folgenden Quelltext und teste, ob das Programm das Gewünschte leistet. Beachte, dass du alle drei Fälle testen musst. Achte auch hier besonders auf korrekte Einrückungen.
kara.move()
if kara.onLeaf():
kara.removeLeaf()
...
else:
kara.move()
if kara.onLeaf():
kara.removeLeaf()
...
else:
kara.move()
...
kara.putLeaf()
Aufgabe 4: Ein Lösungsverfahren überprüfen
Leistet das folgende Lösungsverfahren auch das Gewünschte? Überprüfe das zunächst, indem du es selbst (z.B. auf dem Papier) durchspielst. Übersetze das Lösungsverfahren anschließend in die Programmiersprache Python und teste das entsprechende Python-Programm.
Schritt weitergehen WENN auf einem Kleeblatt: Kleeblatt aufheben rechts drehen rechts drehen SONST: Schritt weitergehen WENN auf einem Kleeblatt: Kleeblatt aufheben rechts drehen rechts drehen SONST: Schritt weitergehen Kleeblatt aufheben rechts drehen rechts drehen Schritt weitergehen Schritt weitergehen Schritt weitergehen Kleeblatt hinlegen