Definitionen
Wir gehen von einer unreinen Wiederholung aus (einer Wiederholung von Zeilen, die nicht genau gleich sind).
- Zauberrolle
from turtle import *
bgcolor( 0, 0, 0 )pensize( 5 )
p = pos()
setpos( p ); left( 45 ); pencolor( 0.2, 0.2, 1.0 ); forward( 100 )
setpos( p ); left( 45 ); pencolor( 0.2, 0.4, 0.7 ); forward( 100 )
setpos( p ); left( 45 ); pencolor( 0.2, 0.6, 0.2 ); forward( 100 )
Zunächst schreiben wir die Veränderung (die Farbe »c«) an den Anfang der Zeile.
- Zauberrolle
from turtle import *
bgcolor( 0, 0, 0 )pensize( 5 )
p = pos()
c = 0.2, 0.2, 1.0; setpos( p ); left( 45 ); pencolor( 0.2, 0.2, 1.0 ); forward( 100 )
c = 0.2, 0.4, 0.7; setpos( p ); left( 45 ); pencolor( 0.2, 0.4, 0.7 ); forward( 100 )
c = 0.2, 0.6, 0.2; setpos( p ); left( 45 ); pencolor( 0.2, 0.6, 0.2 ); forward( 100 )
Nun können wir die unterschiedlichen Farben hinter »pencolor« durch »c« ersetzen.
- Zauberrolle
from turtle import *
bgcolor( 0, 0, 0 )pensize( 5 )
p = pos()
c = 0.2, 0.2, 1.0; setpos( p ); left( 45 ); pencolor( c ); forward( 100 )
c = 0.2, 0.4, 0.7; setpos( p ); left( 45 ); pencolor( c ); forward( 100 )
c = 0.2, 0.6, 0.2; setpos( p ); left( 45 ); pencolor( c ); forward( 100 )
Jetzt besteht jede Zeilen aus einem Variablenteil am Anfang (»c = 0.2, 0.6, 0.2;«) und einer reinen Wiederholung (einer Wiederholung des genau gleichen Textes »setpos( p ); left( 45 ); pencolor( c ); forward( 100 )«).
Der reine Teil der Wiederholung kann nun als Zauber »z« definiert und dann in den drei Zeilen verwendet werden.
- Zauberrolle
from turtle import *
bgcolor( 0, 0, 0 )pensize( 5 )
p = pos()
def z():
setpos( p )
left( 45 )
pencolor( c )
forward( 100 )c = 0.2, 0.2, 1.0; z()
c = 0.2, 0.4, 0.7; z()
c = 0.2, 0.6, 0.2; z()
- An Stelle von »z« kann auch ein anderer Buchstabe oder ein anderes Wort verwendet werden.
- Die Definition (Festlegung) des Zaubers beginnt mit »def« und umfaßt auch noch alle eingerücken folgenden Zeilen. (Eine Zeile ist eingerückt, wenn sie weiter rechts beginnt als »def«.)
Definieren Sie einen Zauber »q«, der ein Quadrat malt. Am Ende des Zaubers soll das Zauberdreieck sich wieder am Ausgangspunkt befinden und sich dann noch um 10 Grad nach rechts gegenüber der Ausgangsrichtung drehen.
Lassen Sie diesen Zauber dann 36 Mal wirken, um so insgesamt 36 Quadrate zu zeichnen, deren jedes um 10 Grad weiter nach rechts gedreht ist.
- 36maliges Wirkenlassen eines Zaubers
q(); q(); q(); q(); q(); q(); q(); q(); q(); q()
q(); q(); q(); q(); q(); q(); q(); q(); q(); q()
q(); q(); q(); q(); q(); q(); q(); q(); q(); q()
q(); q(); q(); q(); q(); q()
Wenn Sie dann noch Zeit haben, können Sie noch mit den Farben der Quadrate experimentieren.