# Fun with Turtle
Ziel: Viel Programmieren.
Wie: Back to Turtle
### Einrichtung
TigerJython kommt langsam an seine Grenze, wir lassen es hinter uns.
Stattdessen steigen wir um auf die Entwicklungsumgebung **Visual Studio Code**:
* Installiere die aktuelle Version von [[https://www.python.org/downloads/|Python]] auf deinem Computer.
* [[https://code.visualstudio.com/|Visual Studio Code]] laden und installieren.
* Installiere die [[https://marketplace.visualstudio.com/items?itemName=ms-python.python|Python-Extension]]
### Hintergrundbild in Turtle laden
Dazu musst du die Datei {{:gf_informatik:maze2.png?linkonly|maze2.png}} laden und im selben Ordner wie deinen Code abspeichern. Die Bilddatei lässt sich dann wie folgt laden:
from turtle import *
# Load background image
bgpic('maze2.png')
**Beachte:** Wir importieren `turtle` statt wie früher `gturtle`.
Anschliessend platzieren wir die Turtle erst mal am Eingang des Labyrinths:
# Create new turtle
fred = Turtle()
# Go to starting position
fred.hideturtle()
fred.penup()
fred.shape('turtle')
fred.goto(-177, 245)
fred.pendown()
fred.showturtle()
# We are done!
done()
**Beachte:** Die `done()` Funktion muss immer am Schluss des Programms stehen und verhindert, dass das Fenster sich am Schluss wieder schliesst.
### Aufgabe 1: Lasse die Turtle einen Weg aus dem Labyrinth finden.
Schreibe Python-Code, um die Turtle durch das Labyrinth finden zu lassen. Füge dafür Code **vor** dem `done()` ein.
Tipps:
* Hilft es, eine Variable mit der Breite des Gangs zu definieren?
### Aufgabe 2: Meeehr Labyrinth
Versuche dich nun an {{:gf_informatik:maze3.png?linkonly|}} (Start-Koordinaten: -373, 185) und {{:gf_informatik:maze5.png?linkonly|}} (Start: -204, 270)!
### Aufgabe 3: Kompakte Lösungssprache
Ziel: Den Weg aus dem Labyrinth als kompakte Anweisung codieren. Beispiel: Der String `'L---R-R--'` steht für "Links, 3x vorwärts, rechts, 1x vorwärts, rechts, 2x vorwärts".
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.
Wie wärs mit einer noch kompakteren Sprache, z.B. `'L3RR2'`?