Voraussetzung
Sie haben auf jupyter.gbsl.website das Kapitel 5 bis und mit Kapitel 5.1 gelesen und bearbeitet.
-
Zeichnen Sie ein Nikolaus-Haus. Um die Länge der Diagonalen zu bestimmen, müssen Sie die Wurzel aus
2berechnen. Dies können Sie, indem Sie die Funktionsqrt(abkürzung für Squareroot, übersetzt auf deutsch Quadratwurzel) aus der Bibliothekmathimportieren:from math import sqrt
forward(100 * sqrt(2))
-
Verschieben Sie den Code, welche das Haus zeichnet, in eine Funktion
haus()und rufen Sie die Funktion auf, damit ein Haus gezeichnet wird. -
Erzeugen Sie nun ein ganzes Quartier mit min.
10Häusern (Tipp. verwenden Sie eine Schleife). Die Häuser sollen zufällig positioniert werden.Die Funktion
randint(-10, 10)gibt eine zufällige Zahl zwischen-10und10zurück.pos_x = randint(-10, 10)
pos_y = randint(-10, 10)
goto(pos_x, pos_y, draw=False)Die Positionen sollen zwischen
-150und150gesetzt werden.
-
Ändern Sie die Funktion so, dass Sie die Grösse des Hauses beim Funktionsaufruf mitgeben können.
haus(10)soll ein haus mit Seitenbreite10zeichnen,haus(100)eines mit Seitenbreite100.
-
Zeichnen Sie eine farbeige Stadt:

Dazu brauchen wird die Funktion
cycle(), welche eine Liste auf einem Drehteller ablegt; nachdem die letzte Farbe verwendet wurde, wird wieder die erste Farbe zurückgegeben:
from itertools import cycle
colors = [
'red',
'green',
'blue'
]
color_cycle = cycle(colors)
color = next(color_cycle) # => red
color = next(color_cycle) # => green
color = next(color_cycle) # => blue
color = next(color_cycle) # => redStatt nur drei Farben, können Sie auch bspw. die Regenbogenfarben verwenden:
# Regenbogenfarben:
rainbow_colors = [
'red',
'orangered',
'orange',
'yellow',
'lightgreen',
'lime',
'green',
'blue',
'indigo',
'violet'
]
Zeichnungen mit Funktionen erzeugen
-
6 Auf https://io.gbsl.website/controller gibt es
4Funktionstasten. Wird eine solche geklickt, wird im Skript mit derselbenDeviceIDdie Funktionon_f1, bzw.on_f2,on_f3oderon_f4aufgerufen.-
F1zeichnet ein Haus -
F2ein8eck -
F3einen5er Stern -
F4ändert die Position mitgoto()zu einem zufälligen neuen Punkt.
-
-
7 Auf https://io.gbsl.website/controller können auch die Steuertasten verwendet werden. Sobald eine solche Taste geklickt wird, wird die Funktion
on_key(data)aufgerufen. Indata.keysteht eine der folgenden Texte drin:-
up -
right -
down -
left -
home
Mit den Schlüsselwörtern
if,elifundelseist es möglich, Codeteile nur dann auszuführen, wenn ein Vergleich zutrifft oder nicht.key = "up"
if key == "down":
print("Runter")
elif key == "up":
print("Rauf!!")
elif key == "right":
print("Rechts!!")
elif key == "left":
print("Links!")
else:
print("Unbekannte Richtung!!!")
print("Fertig")Hier wird überprüft, ob
keydem Textdownentspricht (nein). Falls nicht, wird mitelifeine weitere Bedingung überprüft: obkeydem Textupentspricht (ja). aller eingerückte Code nach Zeile5ausgeführt - es wird alsoRauf!!ausgegeben. Danach springt die Code-Ausführung direkt zu Zeile14.Was würde ausgegeben wenn auf Zeile
1:key = "home"stehen würde? Alle Bedingungen würden nicht zutreffen, weshalb der "Sonst"-Fall (else) eintrifft und die Zeile12ausgeführt wird.Schreiben Sie ein Programm, welches bei
-
up10Schritt nach vorn -
right45°nach rechts -
down10Schritt rückwärts -
left45°nach links -
homenach hause (home())
6: Bedingte Ausführunggeht.
-
Funktionen