Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:kara_maze [2026-06-15 13:26] – [Additum 2: Kompakte Lösungssprache] hof | gf_informatik:kara_maze [2026-06-21 19:22] (aktuell) – [Additum 1a: Kara in der freien Wildbahn] hof | ||
|---|---|---|---|
| Zeile 172: | Zeile 172: | ||
| </ | </ | ||
| </ | </ | ||
| + | ## Additum 1: Kara in der freien Wildbahn | ||
| + | Kara steht diesmal mitten im offenen Feld — nicht an einer Aussenwand. Funktioniert der Pledge-Algorithmus aus Aufgabe 4 hier auch? | ||
| - | ## Additum 1: Kara in der freien Wildbahn | + | < |
| + | < | ||
| + | < | ||
| + | ############################## | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | ################################# | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| - | Kara steht diesmal mitten im offenen Feld — nicht an einer Wand. Der Wandfolger-Algorithmus aus Aufgabe 3 funktioniert nur, wenn Kara bereits an einer Wand ist. | ||
| - | **Aufgabe: | + | ## Additum |
| - | - **Phase 1:** Kara läuft geradeaus, bis er eine Wand erreicht | + | |
| - | - **Phase | + | |
| - | - **Phase 3:** Kara folgt der Wand bis zum Blatt (wie in Aufgabe 3) | + | |
| - | <nodisp 2> | + | Ziel: Den Weg aus dem Labyrinth als kompakte Anweisung codieren. Beispiel: Der String `' |
| - | ++++Tipp:| | + | |
| - | <code python> | + | |
| - | # Phase 1: Wand suchen | + | |
| - | while not kara.treeFront(): | + | |
| - | kara.move() | + | |
| - | # Phase 2: Drehen (Wand soll links von Kara sein) | + | Schreibe einen Interpreter für die obige Anweisungssprache für Kara. Ein Interpreter ist eine Funktion, die einen String erhält und den Käfer entsprechend bewegt. |
| - | kara.turnRight() | + | |
| - | # Phase 3: Wandfolger (aus Aufgabe 3 übernehmen) | + | Wie wärs mit einer noch kompakteren Sprache, z.B. `' |
| - | while not kara.onLeaf(): | + | ## Additum |
| - | | + | |
| - | </ | + | Ziel: Aus dem Labyrinth finden |
| - | ++++ | + | |
| - | </ | + | |
| < | < | ||
| - | < | + | < |
| < | < | ||
| ####### | ####### | ||
| #.....# | #.....# | ||
| - | #.>...# | + | #.>.#.# |
| + | #....ML | ||
| #.....# | #.....# | ||
| #.....# | #.....# | ||
| - | #....L# | ||
| ####### | ####### | ||
| </ | </ | ||
| </ | </ | ||
| </ | </ | ||
| - | ## Additum 2: Kompakte Lösungssprache | ||
| - | Ziel: Den Weg aus dem Labyrinth als kompakte Anweisung codieren. Beispiel: Der String `' | ||
| - | Schreibe einen Interpreter für die obige Anweisungssprache für Kara. Ein Interpreter ist eine Funktion, die einen String erhält und den Käfer entsprechend bewegt. | + | < |
| + | < | ||
| + | < | ||
| + | ############# | ||
| + | #>.M....##### | ||
| + | #### | ||
| + | #### | ||
| + | #### | ||
| + | #### | ||
| + | #### | ||
| + | ######## | ||
| + | ######## | ||
| + | ######## | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | ######### | ||
| + | #> | ||
| + | #...M...# | ||
| + | ####.#### | ||
| + | ####M### | ||
| + | ####.#### | ||
| + | #.......# | ||
| + | #.......# | ||
| + | #.L.....# | ||
| + | ######### | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | ######### | ||
| + | #> | ||
| + | #.......# | ||
| + | #..MM...# | ||
| + | ###.M#### | ||
| + | #..M..### | ||
| + | ##.#..### | ||
| + | ##.###### | ||
| + | #.......# | ||
| + | #.......# | ||
| + | #.L.....# | ||
| + | ######### | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| - | Wie wärs mit einer noch kompakteren Sprache, z.B. `' | ||