Kara Algorithmen
Ein Algorithmus ist eine eindeutige Vorgehensweise zur Lösung eines Problems. Du hast bereits einige Algorithmen ausprobiert und sogar selber einige umgesetzt, z.B. zum Verteilen von Blättern, dem Markieren eines Tunnels oder dem Zählen von Blättern.
Zentral dabei ist, dass diese Algorithmen nicht nur in der vorgegebenen Kara-Welt funktionieren, sondern die richtige Lösung auch dann liefern, wenn die Welt anders aussieht - zum Beispiel wenn mehr oder weniger Blätter vorhanden sind. Ein Algorithmus, der für Aufgabe E2 einfach die korrekte Zahl 34 ausgibt, genügt diesem Kriterium kaum.
In diesem Kapitel werden wir unsere Python-Kenntnisse vertiefen und auf algorithmische Probleme anwenden.
Aufgabe F1: Wand folgen
Kara wacht eifersüchtig über ihren Blättervorrat. Schreibe Python-Code, der Kara immerzu um die Bäume herumlaufen lässt.
Hinweis: Das Programm hört von sich aus nie auf, muss also aktiv unterbrochen werden, um es zu stoppen.
Aufgabe F2: Längster Tunnel
Schreibe Python-Code, um den Länge des längsten Tunnels auszugeben. Ein Tunnel ist definiert als eine gerade Strecke, bei der links und rechts ein Baum steht. Am Ende wird die Länge des längsten Tunnels auf der Konsole ausgegeben. Kara stoppt, wenn Sie auf einen Baum trifft.
Tipps:
- Merke dir den bislang längsten Tunnel (Rekordhalter) in einer Variable (zu Beginn
0). - Merke dir die Länge des aktuellen Tunnels in einer Variable.
- am Ende jedes Tunnels vergleichst du den aktuellen Tunnel mit dem bisherigen Rekordhalter und setzt ev. diesen eventuell auf den neuen Höchstwert.
- Vergleiche kannst du mit dem Operator
>oder<anstellen, alsoif laenge > rekord: - danach wird die aktuelle Länge auf
0gesetzt.