Bewegen und Zeichnen
Die Grundbefehle aus 3.1 und 3.2: Die Turtle läuft, dreht sich, springt und zeichnet mit Stift, Farbe und Formen.
Bewegen
forward läuft in Blickrichtung, backward rückwärts — die Richtung bleibt dabei gleich.
forward(80) · backward(30)Drehen
left dreht gegen, right mit dem Uhrzeigersinn — immer relativ zur aktuellen Richtung.
left(90) · right(45)Koordinaten
Die Mitte ist (0|0). goto springt zu einem Punkt, home zurück zur Mitte und Blick nach rechts.
goto(60, 40) · home() · setheading(90)Stift
penup hebt, pendown senkt den Stift; Farbe und Dicke gelten für alle folgenden Striche.
penup() · pencolor("blue") · pensize(4)Formen
circle(r) zeichnet einen Kreis mit Radius r, dot einen Punkt; Füllen klammert man mit begin_fill und end_fill.
circle(30) · dot(20) · begin_fill()Aussehen
Hintergrund, Tempo, Text und die Turtle selbst lassen sich einstellen — gezeichnet wird damit nichts.
bgcolor("yellow") · speed(0) · write("Hi") · hideturtle()Warum goto manchmal einen Strich macht
goto bewegt die Turtle wie forward — mit gesenktem Stift entsteht eine Linie. Wer nur springen will, schreibt vorher penup() und danach wieder pendown().
Wiederholen mit Schleifen
Mit for wiederholt die Turtle Befehle — so entstehen Vielecke, Spiralen und Muster (3.3).
for-Schleife
range(n) wiederholt den eingerückten Block genau n-mal.
for i in range(4):Vielecke
Für ein regelmäßiges n-Eck dreht die Turtle an jeder Ecke um 360° : n.
left(360 / n)Zählvariable
i zählt mit: 0, 1, 2 … — range(1, 7) zählt von 1 bis 6.
forward(i * 10)Verschachtelt
Die innere Schleife läuft bei jedem äußeren Durchlauf komplett: 6 · 4 = 24 Striche.
for r in range(6): → for i in range(4):Die Einrückung entscheidet
Zur Schleife gehört genau das, was nach dem Doppelpunkt eingerückt ist. Rutscht left(90) nach links, läuft es nur einmal nach der Schleife.
Variablen und Funktionen
Werte speichern, Eingaben lesen und eigene Bausteine schreiben (3.4 und 3.5).
Variable
Ein Name speichert einen Wert. Beim Überschreiben wird rechts vom = zuerst gerechnet.
seite = 50 · seite = seite + 10Eingabe
input() liefert immer Text — für Zahlen braucht man int().
n = int(input("Ecken?"))Funktion
def legt einen Baustein mit Namen an; ausgeführt wird er erst beim Aufruf.
def dreieck(): · dreieck()Parameter
Parameter sind Platzhalter; beim Aufruf bekommen sie der Reihe nach ihre Werte.
def quadrat(s): · quadrat(20)def name(p1, p2): — eingerückter Block — name(40, 20)Warum Variablen und Funktionen Arbeit sparen
Eine Zahl, die mehrfach vorkommt, ändert man mit einer Variable an nur einer Stelle. Eine Figur, die mehrfach vorkommt, schreibt man als Funktion nur einmal.
Zufall und Entscheidungen
Mit dem Modul random kommt Überraschung ins Bild, mit if und else trifft das Programm Entscheidungen (3.6).
Zufallszahl
randint(a, b) liefert eine ganze Zahl von a bis einschließlich b.
random.randint(1, 6)Zufallsauswahl
choice wählt ein Element aus einer Liste.
random.choice(["red", "blue"])if
Der eingerückte Block läuft nur, wenn die Bedingung wahr ist.
if x > 0:if-else
Genau einer der beiden Blöcke läuft — nie beide, nie keiner.
if w == 1: … else:== gleich · != ungleich · < > <= >=import random.Zufall ist nicht gerecht verteilt
Bei randint(1, 4) kommt die 1 im Mittel in jedem vierten Durchlauf — in einem einzelnen Programmlauf kann sie aber auch gar nicht oder öfter kommen.
Die Regeln, an denen die Punkte hängen
In der Arbeit kosten diese drei Dinge am häufigsten Punkte.
Regel 1 — Doppelpunkt und Einrückung
Nach for, def, if und else steht ein Doppelpunkt, der Block darunter ist eingerückt. Fehlt eins davon, gibt es einen Fehler oder ein falsches Bild.
Regel 2 — Winkel sind Außenwinkel
Die Turtle dreht um den Winkel, um den sie ihre Richtung ändert: beim Dreieck 120°, nicht 60°. Zur Kontrolle: alle Drehungen zusammen ergeben 360°.
Regel 3 — Programme Zeile für Zeile verfolgen
Bei Aufgaben mit Positionen oder Längen schreibst du nach jeder Zeile Position, Blickrichtung und Variablenwerte mit — so findest du auch Fehler.
