====== 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 ([[https://docs.python.org/3/library/turtle.html#pen-control|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. {{:lehrkraefte:sbt:informatik:glf22:pasted:maze1.png|maze1.png}} > **Tipp** Hilft es, eine Variable mit der Breite des Gangs zu definieren? ==== Aufgabe 2: Labyrinth ==== Versuche dich nun an ''%%maze2.png%%'' (Start: -204, 272) {{:lehrkraefte:sbt:informatik:glf22:pasted:maze2.png|maze2.png}} und ''%%maze3.png%%'' (Start: -373, 185) {{:lehrkraefte:sbt:informatik:glf22:pasted:maze3.png|maze3.png}} ===== 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. ====== Python Syntax ====== * [[lehrkraefte:blc:informatik:glf4-20:simulation:python-mini-cheat-sheet | Python Mini-Cheat-Sheet]] * [[lehrkraefte:sbt:informatik-glf2-23:pythonstructure | Python Doku für den Unterricht im GLF Informatik]] ---- * [[https://docs.python.org/3/library/turtle.html|docs.python.org | Turtle]]