**Dies ist eine alte Version des Dokuments!**
Selektion mit Verzweigungen
Blätter legen und sammeln
Neben Pilzen gibt es in der Kara-Welt auch Kleeblätter (en. leaf). Während ein einzelner Pilz von Kara herumgeschoben werden kann, können Blätter gelegt und aufgenommen werden. Die folgenden Funktionen stehen zur Verfügung:
kara.onLeaf()ist genau dann wahr (True), falls sich Kara auf einem Kleeblatt befindet, sonst falsch (False).kara.putLeaf()legt ein Blatt ab.- Schlägt fehlt und beendet das Programm, wenn bereits ein Blatt vorhanden ist.
kara.removeLeaf()nimmt ein Blatt auf.- Schlägt fehlt und beendet das Programm, wenn kein Blatt vorhanden ist.
Aufgabe C1: Blätter sammeln
Schreibe Code, um alle bestehenden Blätter aufzusammeln. Achtung, auf dem Startfeld hat es kein Blatt!
Verzweigungen
Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, wenn eine Bedingung wahr ist, verwenden wir eine Verzweigung. Das Schlüsselwort in Python lautet if.
Der Fachbegriff für eine Verzweigung ist Selektion (Auswahl eines Ausführungspfades).
Beispiel: Der folgende Code sammelt nur dann ein Blatt, wenn kara.onLeaf() wahr ist. Beachte: Der bedingt ausgeführte Code-Block muss eingerückt sein.
Aufgabe C2: Blätter verteilen
Schreibe Code, der gerade umgekehrt funktioniert: Überall, wo kein Blatt ist, soll eines hingelegt werden - auch im Startfeld.
Aufgabe C3: Labyrinth-Gärtner
Schreibe Code mit while und if, um alle Blätter aufzusammeln. Kara stoppt, wenn Sie einen Pilz erreicht.
Verzweigung mit Alternative
Wenn Kara entweder je nach Bedingung die eine oder andere Anweisung ausführen soll, so können wir if zusammen mit else benützen.
Der folgende Code sammelt die bestehenden Blätter und legt ein neues Blatt hin, falls es keines hat (ausser im letzten Feld):
Aufgabe C4: Blattwanderung
Schreibe Python-Code mit folgenden Eigenschaften:
- Kara soll folgende Anweisungen befolgen, solange sie auf keinen Pilz stösst.
- Wenn Kara auf einem Blatt steht,
- soll sie nach links wenden;
- andernfalls:
- soll Kara nach rechts wenden.
- Dann soll Kara einen Schritt nach vorne machen.
Bei welchem Pilz landet Kara?
Aufgabe C5: Pilzsuche
Lies das folgende Python-Programm für Kara und beschreibe es in natürlicher Sprache. Bestimme, auf welchem Feld Kara landen wird.
while not kara.treeFront(): if kara.onLeaf(): kara.turnLeft() if kara.mushroomFront(): kara.turnRight() kara.move()
Aufgabe C6: Golfplatz (schwierig)
Der Golf-Rasen ist voller Blätter - schreibe Code, um alle Blätter aufzusammeln!
Weiter
Weiter gehts mit Booleans & Logik.