Ein bisschen Turtlen im Labyrinth
Hintergrundbild in Turtle laden
Die Datei maze1.png herunterladen und im Ordner, wo auch dein Code entsteht (z.B: …/informatik/python/turtle) abspeichern. In Python wird die Bilddatei geladen:
from turtle import * # Load background image bgpic('maze1.png') title('My turtle Lea') Screen().setup(600, 600) # Grösse der Zeichenfläche
Dann kann die Turtle an den Eingang zum Labyrinth gebracht werden:
# Create new turtle lea = Turtle() # Go to start position lea.hideturtle() lea.penup() # "Stift anheben" --> Turtle-Spur nicht zeichnen lea.shape('turtle') # Turtle verwenden (Alternativen: “arrow”, “circle”, “square”, “triangle”, “classic”) lea.goto(-177, 250) lea.pendown() # "Stift absenken" --> Turtle-Spur wird gezeichnet lea.showturtle() # Start eigener Code # Ende eigener Code done()
Beachte: Die done() Funktion sollte immer am Schluss des Programms stehen, um zu verhindern, dass sich das Fenster am Schluss automatisch schliesst.
Weitere Turtle Befehle (docs.python.org | pen-control)
| Funktion | Kurzform | Wirkung |
|---|---|---|
| left(n) | rt(n) | n-Grad links drehen |
| right(n) | rt(n) | n-Grad rechts drehen |
| forward(n) | fd(n) | n-Einheiten vorwärts gehen |
| backward(n) | bk(n) | n-Einheiten rückwärts gehen |
Aufgabe 1: Weg durch den Irrgarten
Lasse die Turtle einen Weg aus dem Labyrinth (Irrgarten) maze1.png (Start-Koordinaten: -175 , 250) finden.
Tipp Hilft es, eine Variable mit der Breite des Gangs zu definieren?
Aufgabe 2: Labyrinth
Aufgabe 3: Kompakte Lösungssprache
A3a
Codieren den Weg aus dem Labyrinth maze1.png als kompakte Anweisungen mit dem Alphabeth LR-.
| Buchstabe | Funktion |
|---|---|
L | Linksdrehung 90° |
R | Rechtsdrehung 90° |
- | 1 Schritt geradeaus |
Beispiel: String 'L---R-R--'
Schreibe einen Interpreter für die obige Anweisungssprache für die Turtle.
Ein Interpreter ist eine Funktion, die einen String erhält und die Turtle entsprechend bewegt.
A3a-Zusatz
Gibt es eine noch kompaktere Sprache, z.B. 'L3RR2'? Definiere das Alphabeth und schreibe den Interpreter.
A3b
Codieren den Weg aus dem Labyrinth maze2.png als kompakte Anweisungen mit dem Alphabeth LR-.
A3c
Erweitere dein Alphabeth, so dass du dass Labyrint maze3.png bezwingen kannst.


