Die folgenden Methoden sind schon vorgegeben:
def turnAround():
kara.turnLeft()
kara.turnLeft()
def gehe(schritte):
for i in range(schritte):
kara.move()
def lege(schritte):
for i in range(schritte):
kara.putLeaf()
kara.move()
def dreieck(hoehe):
zeile = 1
while zeile <= hoehe:
lege(zeile)
turnAround()
gehe(zeile)
kara.turnLeft()
kara.move()
kara.turnLeft()
zeile = zeile + 1
# Aufruf:
dreieck(7)
1. Durchgang: zeile = 1 --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
2. Durchgang: zeile = 2 --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
3. Durchgang: zeile = 3 --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
...
Letzter Durchgang: zeile = hoehe --> lege(zeile) -->...--> gehe(zeile) -->...--> zeile = zeile + 1
Schleife wird beendet.
und wenn, wie im Beispiel, hoehe = 7 ist:
1. Durchgang: zeile = 1 --> lege(1) -->...--> gehe(1) -->...--> zeile = 1 + 1 = 2
2. Durchgang: zeile = 2 --> lege(2) -->...--> gehe(2) -->...--> zeile = 2 + 1 = 3
3. Durchgang: zeile = 3 --> lege(3) -->...--> gehe(3) -->...--> zeile = 3 + 1 = 4
...
7. Durchgang: zeile = 7 --> lege(7) -->...--> gehe(7) --> ...--> zeile = 7 + 1 = 8
Schleife wird beendet.

def quadrat(laenge):
zeile = 1
while zeile <= laenge:
lege(laenge)
turnAround()
gehe(laenge)
kara.turnLeft()
kara.move()
kara.turnLeft()
zeile = zeile + 1
# Aufruf:
quadrat(7)
1. Durchgang: zeile = 1 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
2. Durchgang: zeile = 2 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
3. Durchgang: zeile = 3 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
...
Letzter Durchgang: zeile = laenge --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
Schleife wird beendet.
und wenn, wie im Beispiel, laenge = 7 ist:
1. Durchgang: zeile = 1 --> lege(7) -->...--> gehe(7) -->...--> zeile = 1 + 1 = 2
2. Durchgang: zeile = 2 --> lege(7) -->...--> gehe(7) -->...--> zeile = 2 + 1 = 3
3. Durchgang: zeile = 3 --> lege(7) -->...--> gehe(7) -->...--> zeile = 3 + 1 = 4
...
7. Durchgang: zeile = 7 --> lege(7) -->...--> gehe(7) --> ...--> zeile = 7 + 1 = 8
Schleife wird beendet.
def rechteck(laenge, breite):
zeile = 1
while zeile <= breite:
lege(laenge)
turnAround()
gehe(laenge)
kara.turnLeft()
kara.move()
kara.turnLeft()
zeile = zeile + 1
# Aufruf:
rechteck(6, 5)
1. Durchgang: zeile = 1 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
2. Durchgang: zeile = 2 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
3. Durchgang: zeile = 3 --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
...
Letzter Durchgang: zeile = breite --> lege(laenge) -->...--> gehe(laenge) -->...--> zeile = zeile + 1
Schleife wird beendet.
und wenn, wie im Beispiel, laenge = 7 und breite = 5 ist:
1. Durchgang: zeile = 1 --> lege(7) -->...--> gehe(7) -->...--> zeile = 1 + 1 = 2
2. Durchgang: zeile = 2 --> lege(7) -->...--> gehe(7) -->...--> zeile = 2 + 1 = 3
3. Durchgang: zeile = 3 --> lege(7) -->...--> gehe(7) -->...--> zeile = 3 + 1 = 4
...
5. Durchgang: zeile = 5 --> lege(7) -->...--> gehe(7) --> ...--> zeile = 5 + 1 = 6
Schleife wird beendet.

def rechteckRahmen(laenge, breite):
lege(laenge-1)
kara.turnRight()
lege(breite-1)
kara.turnRight()
lege(laenge-1)
kara.turnRight()
lege(breite-1)
kara.turnRight()
# Aufruf:
rechteckRahmen(7, 5)
Kara muss waagerecht laenge-1 Blätter und senkrecht breite-1 Blätter legen. Er steht ja nach dem Legen hinter dem letzten gelegten Blatt und startet auf dieser Position mit weiterem Legen nach der Drehung.