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:labyrinthe [2026-08-14 15:21] – hof | gf_informatik:karatutorial:labyrinthe [2026-09-03 14:07] (aktuell) – [Labyrinthe] hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ## Labyrinthe | + | ## Labyrinthe |
| Mit unserem Wissen über Schleifen und Verzweigungen können wir bereits aus einem einfachen Labyrinth finden. | Mit unserem Wissen über Schleifen und Verzweigungen können wir bereits aus einem einfachen Labyrinth finden. | ||
| - | ### Aufgabe | + | ### Aufgabe |
| Schreibe möglichst kompakten Code, der aus dem Labyrinth findet. Schau falls nötig bei [[.:loops]] oder [[.: | Schreibe möglichst kompakten Code, der aus dem Labyrinth findet. Schau falls nötig bei [[.:loops]] oder [[.: | ||
| - | <kara-editor | + | <kara-exercise |
| < | < | ||
| | | ||
| Zeile 17: | Zeile 17: | ||
| | | ||
| </ | </ | ||
| - | </kara-editor> | + | <kara-solution> |
| - | + | ||
| - | ++++Mögliche Lösung 7| | + | |
| - | <code python> | + | |
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| if kara.treeFront(): | if kara.treeFront(): | ||
| Zeile 26: | Zeile 23: | ||
| else: | else: | ||
| kara.move() | kara.move() | ||
| - | </code> | + | </kara-solution> |
| - | ++++ | + | </ |
| - | ### Aufgabe | + | ### Aufgabe |
| Schwieriger wird es, wenn je nach Situation nach links statt nach rechts gewendet werden soll. Wie wird sich Kara mit dem Code von Aufgabe 7 bewegen? Findet Kara zum Pilz? Was musst du ändern, um ins Ziel zu kommen? Denk dran, dass sich Verzweigungen (`if`) und Schleifen (`while`) beliebig ineinander verschachteln lassen! | Schwieriger wird es, wenn je nach Situation nach links statt nach rechts gewendet werden soll. Wie wird sich Kara mit dem Code von Aufgabe 7 bewegen? Findet Kara zum Pilz? Was musst du ändern, um ins Ziel zu kommen? Denk dran, dass sich Verzweigungen (`if`) und Schleifen (`while`) beliebig ineinander verschachteln lassen! | ||
| - | <kara-editor | + | <kara-exercise |
| # Lösung von Aufgabe 7 - was passiert? | # Lösung von Aufgabe 7 - was passiert? | ||
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| Zeile 50: | Zeile 47: | ||
| | | ||
| </ | </ | ||
| - | </kara-editor> | + | <kara-solution> |
| - | + | ||
| - | ++++Mögliche Lösung 8| | + | |
| - | <code python> | + | |
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| if kara.treeFront(): | if kara.treeFront(): | ||
| Zeile 63: | Zeile 57: | ||
| else: | else: | ||
| kara.move() | kara.move() | ||
| - | </code> | + | </kara-solution> |
| - | ++++ | + | </ |
| ### Mehr Bedingungen | ### Mehr Bedingungen | ||
| Zeile 73: | Zeile 67: | ||
| - | ### Aufgabe | + | ### Aufgabe |
| Schreibe die Lösung zu Aufgabe 8 um, indem du die neuen Bedingungen einbaust! | Schreibe die Lösung zu Aufgabe 8 um, indem du die neuen Bedingungen einbaust! | ||
| - | ++++Lösung | + | ++++Lösung |
| <code python> | <code python> | ||
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| Zeile 89: | Zeile 83: | ||
| ++++ | ++++ | ||
| - | ### Aufgabe | + | ### Aufgabe |
| Reicht das bereits, um aus jedem Labyrinth hinauszufinden? | Reicht das bereits, um aus jedem Labyrinth hinauszufinden? | ||
| - | <kara-editor | + | <kara-exercise |
| - | # Lösung von Aufgabe | + | # Lösung von Aufgabe |
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| if kara.treeFront(): | if kara.treeFront(): | ||
| Zeile 110: | Zeile 104: | ||
| | | ||
| </ | </ | ||
| - | </kara-editor> | + | <kara-solution> |
| - | + | ||
| - | ++++Ideen| | + | |
| - | * ... einfach mal die Hand an die Wand legen und nie loslassen! | + | |
| - | ++++ | + | |
| - | + | ||
| - | ++++Lösung| | + | |
| - | <code python> | + | |
| while not kara.mushroomFront(): | while not kara.mushroomFront(): | ||
| # Wir folgen der rechten Wand | # Wir folgen der rechten Wand | ||
| Zeile 128: | Zeile 115: | ||
| else: | else: | ||
| kara.turnLeft() | kara.turnLeft() | ||
| - | </code> | + | </kara-solution> |
| + | </ | ||
| + | |||
| + | ++++Ideen| | ||
| + | * ... einfach mal die Hand an die Wand legen und nie loslassen! | ||
| ++++ | ++++ | ||
| Zeile 145: | Zeile 136: | ||
| ++++ | ++++ | ||
| - | ### Aufgabe | + | ### Aufgabe |
| Finde aus dem untenstehenden Labyrinth! | Finde aus dem untenstehenden Labyrinth! | ||
| - | <nodisp 2> | + | <kara-exercise |
| - | ++++Lösung| | + | |
| - | <code python> | + | |
| - | # Pledge-Algorithmus | + | |
| - | angle = 0 | + | |
| - | while not kara.mushroomFront(): | + | |
| - | # Wir verlassen die Wand, wenn wir in der Ursprungsrichtung | + | |
| - | # laufen. | + | |
| - | if not kara.treeLeft() and angle != 0: | + | |
| - | kara.turnLeft() | + | |
| - | angle += 90 | + | |
| - | kara.move() | + | |
| - | elif not kara.treeFront(): | + | |
| - | kara.move() | + | |
| - | else: | + | |
| - | kara.turnRight() | + | |
| - | angle -= 90 | + | |
| - | </ | + | |
| - | ++++ | + | |
| - | </ | + | |
| - | + | ||
| - | <kara-editor | + | |
| < | < | ||
| ##################### | ##################### | ||
| Zeile 194: | Zeile 164: | ||
| ######### | ######### | ||
| </ | </ | ||
| - | </kara-editor> | + | < |
| + | # Pledge-Algorithmus | ||
| + | angle = 0 | ||
| + | while not kara.mushroomFront(): | ||
| + | # Wir verlassen die Wand, wenn wir in der Ursprungsrichtung | ||
| + | # laufen. | ||
| + | if not kara.treeLeft() and angle != 0: | ||
| + | kara.turnLeft() | ||
| + | angle += 90 | ||
| + | kara.move() | ||
| + | elif not kara.treeFront(): | ||
| + | kara.move() | ||
| + | else: | ||
| + | kara.turnRight() | ||
| + | angle -= 90 | ||
| + | </ | ||
| + | </kara-exercise> | ||