Stap 7: Ik heb gewonnen (write)
Deze stap neemt geen nieuwe les. Nieuw is het turtle-commando write: dat staat hieronder.
De winnaar heeft een stip, maar hij mag het ook zeggen. Een schildpad kan
tekst op het scherm zetten met write:
import turtle
turtle.forward(50)
turtle.write("Hallo")
import turtle
turtle.forward(50)
turtle.write("Hallo")De tekst begint waar de schildpad staat en loopt naar rechts, in de kleur van zijn pen. De schildpad zelf blijft staan, met zijn punt aan het begin van de tekst.
Opdracht: de winnaar zegt het
Plak je programma uit stap 6 in het veld. Ben je het kwijt, neem dan de oplossing van stap 6.
Laat de winnaar na de race, na zijn stip:
- zonder te tekenen nog 15 stappen vooruit lopen, zodat de tekst los van de streep en de stip komt te staan;
Ik heb gewonnenop het scherm schrijven.
Bij jou wint waarschijnlijk een andere schildpad.
# Plak hier je programma uit stap 6
Klik hier voor een tip.
Lopen zonder te tekenen ging met penup. Alles wat de winnaar doet, schrijf
je met winnaar ervoor, na de while.
Klik hier voor de oplossing.
import turtle
import random
turtle.penup()
turtle.goto(80, 130)
turtle.pendown()
turtle.goto(80, -130)
turtle.hideturtle()
rood = turtle.Turtle()
rood.pencolor("red")
blauw = turtle.Turtle()
blauw.pencolor("blue")
oranje = turtle.Turtle()
oranje.pencolor("orange")
paars = turtle.Turtle()
paars.pencolor("purple")
schildpadden = [rood, blauw, oranje, paars]
y = 90
for schildpad in schildpadden:
schildpad.penup()
schildpad.goto(-220, y)
schildpad.pendown()
y -= 60
while rood.xcor() < 80 and blauw.xcor() < 80 and oranje.xcor() < 80 and paars.xcor() < 80:
for schildpad in schildpadden:
schildpad.forward(random.randint(1, 20))
if schildpad.xcor() >= 80:
winnaar = schildpad
break
winnaar.dot(20)
winnaar.penup()
winnaar.forward(15)
winnaar.write("Ik heb gewonnen")
De winnaar staat na de race op de streep of net erachter. Met 15 stappen extra begint de tekst altijd voorbij de stip.
Er gaat iets mis
De tekst staat zwart, onderaan de finishlijn.
Oorzaak: je schreef turtle.write(...). Dan schrijft de schildpad die
de finishlijn tekende. Die staat nog onderaan de streep, waar hij klaar
was, en zijn pen is zwart.
Oplossing: laat de winnaar schrijven: winnaar.write(...).
Kopieer je programma voordat je verdergaat: de editor bewaart het niet.
Door naar stap 8: de uitslag.