Das Labyrinth
Willkommen beim Abschlussprojekt! Der Hund ist in einem Heckenlabyrinth gelandet. Im Editor steht das Programm aus der Lektion „Bedingungen“, das den Hund zuverlässig über jeden gewundenen Weg gebracht hat. Führe es aus und beobachte die erste Karte.
Der Hund läuft hin und her und kommt nie am Ziel an. Warum? Auf einem gewundenen Weg gab es von jeder Stelle nur eine Möglichkeit weiterzugehen. Ein Labyrinth hat aber Kreuzungen. An einer Kreuzung geht das Programm aus der Lektion „Bedingungen“ immer geradeaus weiter, biegt also nie in einen Seitengang ab. Es läuft bis zum Ende eines Gangs, dreht um, läuft bis zum anderen Ende und so weiter, immer wieder. Ein Programm, das mit einer Menge von Daten funktioniert, kann sich mit einer anderen ganz anders verhalten. Deshalb testet man Programme mit möglichst unterschiedlichen Eingaben.
Für Labyrinthe gibt es einen einfachen und berühmten Algorithmus: die Rechte-Hand-Regel. Lege die rechte Hand auf eine Wand des Labyrinths und nimm sie nie wieder weg. Wenn du immer an der Wand entlanggehst, kommst du in jedem Labyrinth, dessen Wände alle zusammenhängen, zum Ziel. Die Labyrinthe in diesem Kurs sind so.
Für den Hund bedeutet das Folgendes. In jedem Durchlauf der Schleife:
- Wenn ein Weg nach rechts führt, biegt er rechts ab und macht einen Schritt.
- Sonst macht er, wenn ein Weg voraus ist, einen Schritt.
- Sonst biegt er links ab.
Beachte, dass der Hund im ersten Punkt gleich nach dem Rechtsabbiegen einen Schritt macht. Täte er das nicht, würde er im nächsten Durchlauf wieder einen Weg nach rechts sehen (den, von dem er gerade gekommen ist) und sich immer weiter drehen. Im dritten Punkt reicht dagegen das Abbiegen allein: Im nächsten Durchlauf entscheidet der Hund neu, mit einer neuen Sicht. In einer Sackgasse biegt er zweimal links ab und läuft zurück.
Diese Entscheidungen kennst du aus der Lektion „Bedingungen“, sie brauchen nur eine andere Reihenfolge und einen anderen Inhalt. Ändere das Programm oder baue es neu.
Anweisungen
- 1
Ändere das Programm so, dass der Hund der Rechte-Hand-Regel folgt und auf allen drei Karten das Ziel erreicht.