4. FUNKTIONEN |
DU LERNST HIER... |
|
MUSTERBEISPIELE |
Im letzten Kapitel hast du gelernt. wie die Schlage ein Quadrat zeichnen kann. Dies ist eine typische, in sich geschlossene Aufgabe und wir wollen den dazu benötigten Code in einer Funktion square zusammenfassen. Dazu definierst du die Funktion mit dem Schlüsselwort def wie folgt: def square(): repeat 4: forward() right(90) Der Computer wird beim Lesen dieser Programmzeilen noch gar nichts machen, sondern sich lediglich merken, was er mit der Funktion square tun soll. Die Funktionsdefinition besteht also aus einer Kopfzeile mit def und dem Funktionsnamen gefolgt von einer Parameterklammer und einem Doppelpunkt. Programm:
Es wäre praktisch, wenn du beim Aufruf von square() auch sagen könntest, wo sich die linke untere Ecke der Quadrate befindet, damit du nicht im Hauptprogramm zweimal setPos() aufrufen musst. Dies ist kein Problem, da du in der Definition der Funktion die Koordinaten x und y als Parameter mit Parameternamen x und y einfügen kannst: square(x, y). Beim Aufruf der Funktion mit square(0, 7) werden dann die Werte x, y der Funktion übergeben und an Stelle der Parameternamen verwendet. Programm: from oxosnake import * def square(x, y): setPos(x, y) repeat 4: forward(3) right(90) makeSnake() setSpeed(90) square(0, 7) square(4, 7)
Der Befehl penDown() bewirkt, dass die Schlange eine Spur hinterlässt. Die Farbe der Spur wird mit setPenColor(WHITE) gesetzt, der Hintergrund wird mit setBgColor(RED) auf rot gesetzt. Programm: from oxosnake import * def shape(): forward(2) right(90) forward() right(90) forward(2) makeSnake(speed = 70, pos = (3, 3)) setPenColor(WHITE) penDown() repeat 4: shape() left(90) hide() setBgColor(RED) Mit dem Befehl hide() wird die Schlange versteckt. |
MERKE DIR... |
Um ein etwas komplizierteres Problem zu lösen, teilst du dieses in Teilprobleme ein und löst ein Teilproblem um das andere. Man nennt dies Modularisierung oder strukturierte Programmierung. Funktionen sind fundamentale Hilfsmittel für die strukturierte Programmierung, denn sie ermöglichen es, ein Teilprogramm mehrmals aufzurufen. In der Funktionsdefinition kannst du auch Parameter einfügen und die Parameternamen im Funktionskörper verwenden. Beim Aufruf der Funktion werden die Werte in der Parameterklammer der Funktion übergeben und an Stelle der Parameternamen eingesetzt. Bit dem Befehl setPenColor(color) änderst du die Stiftfarbe, setBgColor(color) ändert den Hintergrund. Am einfachsten ist es, die vordefinierten Farben RED, GREEN, BLUE, WHITE, YELLOW, CYAN, MAGENTA und BLACK zu verwenden. |
ZUM SELBST LÖSEN |
|
Die Farben RED, GREEN, BLUE, WHITE, YELLOW, CYAN, MAGENTA und BLACK sind vordefiniert und können direkt verwendet werden:
Bsp.: setPenColor(CYAN)
Du kannst aber jede beliebige Farbe wählen:
setPenColor(r, g, b), wo r, g, b die rote, grüne und blaue Farbkomponente ist (eine Zahl zwischen 0 und 255).
Bsp.: setPenColor(50, 0, 20)