====== 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]]