Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:karatutorial:leaves [2026-08-27 14:30] – [Aufgabe: Blattwanderung] hof | gf_informatik:karatutorial:leaves [2026-08-28 06:43] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 21: | Zeile 21: | ||
| * Sequenz | * Sequenz | ||
| * Iteration (was ist die Bedingung für `while`?) | * Iteration (was ist die Bedingung für `while`?) | ||
| + | * L4: | ||
| + | * Bool' | ||
| + | * L5: | ||
| + | * Variablen | ||
| + | * Schleifen mit Zähler | ||
| ++++ | ++++ | ||
| </ | </ | ||
| + | |||
| ## Blätter sammeln | ## Blätter 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: | 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: | ||
| Zeile 52: | Zeile 58: | ||
| </ | </ | ||
| </ | </ | ||
| - | |||
| ### Verzweigungen | ### Verzweigungen | ||
| Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, | Wir können nur Blätter aufnehmen, wenn eines vorhanden ist. Um eine Anweisung nur dann auszuführen, | ||
| Zeile 74: | Zeile 79: | ||
| Der Fachbegriff für eine Verzweigung ist **Selektion** (Auswahl einer Anweisung). | Der Fachbegriff für eine Verzweigung ist **Selektion** (Auswahl einer Anweisung). | ||
| + | |||
| + | ### Aufgabe: Blätter verteilen | ||
| + | |||
| + | Schreibe Code, der gerade umgekehrt funktioniert: | ||
| + | |||
| + | < | ||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | < | ||
| + | assert world_leaves() == 8, "8 Blätter erwartet" | ||
| + | </ | ||
| + | < | ||
| + | while not kara.treeFront(): | ||
| + | if not kara.onLeaf(): | ||
| + | kara.putLeaf() | ||
| + | kara.move() | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| ### Aufgabe Labyrinth-Gärtner | ### Aufgabe Labyrinth-Gärtner | ||
| Zeile 104: | Zeile 133: | ||
| </ | </ | ||
| </ | </ | ||
| - | |||
| ### Verzweigung mit Alternative | ### Verzweigung mit Alternative | ||
| Zeile 124: | Zeile 152: | ||
| kara.move() | kara.move() | ||
| < | < | ||
| - | assert world_leaves() == 3, "keine Blätter erwartet" | + | assert world_leaves() == 3 |
| </ | </ | ||
| </ | </ | ||
| + | |||
| ### Aufgabe: Blattwanderung | ### Aufgabe: Blattwanderung | ||
| Zeile 161: | Zeile 190: | ||
| </ | </ | ||
| < | < | ||
| - | assert kara.x == 8, "Kara sollte | + | assert kara.x == 8, "Kara sollte |
| - | assert kara.y == 1, "Kara sollte | + | assert kara.y == 1, "Kara sollte |
| </ | </ | ||
| </ | </ | ||
| - | |||
| ### Aufgabe: Pilzsuche | ### Aufgabe: Pilzsuche | ||
| Lies das folgende Python-Programm für Kara und beschreibe es in natürlicher Sprache. Bestimme, auf welchem Feld Kara landen wird. | Lies das folgende Python-Programm für Kara und beschreibe es in natürlicher Sprache. Bestimme, auf welchem Feld Kara landen wird. | ||
| - | < | + | <WRAP group> |
| + | <WRAP column twothirds> | ||
| + | <code python> | ||
| + | while not kara.treeFront(): | ||
| + | if kara.onLeaf(): | ||
| + | kara.turnLeft() | ||
| + | if kara.mushroomFront(): | ||
| + | kara.turnRight() | ||
| + | kara.move() | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP column third> | ||
| + | {{.: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <nodisp 2> | ||
| + | ++++Lösung| | ||
| + | Kara landet auf dem Feld **B6**: | ||
| + | |||
| + | < | ||
| < | < | ||
| | | ||
| Zeile 177: | Zeile 225: | ||
| T M ML T | T M ML T | ||
| | | ||
| - | | + | |
| | | ||
| - | | ||
| | | ||
| - | | + | |
| + | | ||
| | | ||
| </ | </ | ||
| Zeile 191: | Zeile 239: | ||
| kara.move() | kara.move() | ||
| </ | </ | ||
| + | ++++ | ||
| + | </ | ||
| ### Aufgabe Golfplatz (schwierig) | ### Aufgabe Golfplatz (schwierig) | ||
| Zeile 220: | Zeile 269: | ||
| while kara.onLeaf(): | while kara.onLeaf(): | ||
| kara.removeLeaf() | kara.removeLeaf() | ||
| - | # Wenden, bis Bahn frei | + | # Wenden |
| - | | + | |
| kara.turnRight() | kara.turnRight() | ||
| kara.move() | kara.move() | ||