Herzlich willkommen in der Informatik. Dieses Semester vertiefen wir Ihr Grundwissen. Das Ziel unseres ersten Blocks: Wir programmieren ein an “Snake” angelehntes Zweispieler-Spiel mit Turtle, in dem man sein Gegenüber mit Geschick gewieft austricksen und einschliessen muss.
Dafür müssen wir zuerst schauen, dass die Basics auch sitzen, und unsere Lernumgebung installieren: TigerJython .
Es gibt mehrere Arten, ein Turtle-Programm zu beginnen. Aber hier machen wir das so:
import gturtle # Das importiert die Bibliothek
eva = gturtle.Turtle() # Das kreiert die Turtle namens "eva"
eva.forward(100) # Eva geht 100 Pixel nach vorn
Jetzt sind Sie dran!
Installieren Sie TigerJython und versuchen Sie folgende Aufgaben für sich selbst zu lösen:
Die Turtle zeichnet ein gleichseitiges Dreieck (ohne Repeat-Schleife)
Das funktioniert so:
import gturtle eva = gturtle.Turtle() eva.forward(100) eva.right(120) eva.forward(100) eva.right(120) eva.forward(100) eva.right(120)
Die Turtle zeichnet ein gleichseitiges Dreieck (mit Repeat-Schleife)
Das funktioniert so:
import gturtle eva = gturtle.Turtle() repeat 3: eva.forward(100) eva.right(120)
Die Turtle zeichnet ein gleichseitiges Fünfeck (mit Repeat-Schleife). Rechnen Sie dabei den Winkel nicht manuell aus, sondern schreiben Sie die Rechnung direkt in die Funktion
eva.right(...)
.Das funktioniert so:
import gturtle eva = gturtle.Turtle() repeat 5: eva.forward(100) eva.right(360/5)
Finden Sie eine allgemeine Lösung für ein n-Eck? Erstellen Sie dazu eine Variabel “ecken”, in der man die Anzahl Ecken verändern kann.
Das funktioniert so:
import gturtle eva = gturtle.Turtle() ecken = 7 repeat ecken: eva.forward(100) eva.right(360/ecken)
Definieren Sie eine Funktion
dreieck()
, die ein gleichseitiges Dreieck zeichnet, und führen Sie sie aus.Das funktioniert so:
import gturtle eva = gturtle.Turtle() def dreieck(): repeat 3: eva.forward(100) eva.right(120) dreieck()
Definieren Sie eine Funktion
xeck()
mit einem Parameter für die Anzahl Ecken und zeichnen Sie zuerst ein Fünfeck, dann ein Neuneck und dann ein Elfeck.Das funktioniert so:
import gturtle eva = gturtle.Turtle() def xeck(ecken): repeat ecken: eva.forward(100) eva.right(360/ecken) xeck(5) xeck(9) xeck(11)
Eintrag ins Theorieheft
Wiederholung der wichtigsten Begriffe
Variabel
name = "Melanie" zahl = 5
name
undzahl
sind Variabeln. Sie speichern die Werte"Melanie"
und5
.- Ein einzelnes Gleichheitszeichen
=
ist beim Programmieren kein Vergleich, sondern eine Wertzuweisung - z.B. oft für eine Variabel.Codeblock
repeat 3: eva.forward(100) eva.right(120) eva.left(60) eva.forward(200)
- Zu einem Codeblock (markiert) gehört in Python immer alles, was einmal mehr eingezogen ist (also einen Abstand mehr hat) als die Linie mit dem Doppelpunkt.
Funktion
def xeck(ecken): repeat ecken: eva.forward(100) eva.right(360/ecken) xeck(5)
- Funktionen sind Teilprogramme, die etwas tun. Man erkennt sie an den runden Klammern, z.B.
print(...)
.- Funktionen können Werte verarbeiten, die in ihre vordefinierten Parameter abgefüllt werden. In diesem Beispiel definiert die Funktion
xeck(ecken)
ein Parameterecken
, das dann jeweils beim Aufrufen der Funktion definiert wird–hierxeck(5)
.- Variabeln speichern etwas, Funktionen tun etwas.
Turtle
- Die Turtle befolgt die Anweisungen Schritt für Schritt.
- Die Turtle dreht sich um den Aussenwinkel.