Ga naar hoofdinhoud

Stap 2: Stippen tot de rand (while met een positie)

De vraag in een while-loop mag over de schildpad zelf gaan. turtle.xcor() geeft hoe ver hij naar rechts staat. Zo loopt hij tot de rand, zonder dat jij hoeft uit te rekenen hoeveel stappen dat zijn:

import turtle

turtle.penup()
turtle.goto(-200, 0)

while turtle.xcor() < 200:
turtle.dot(20, "red")
turtle.forward(40)
import turtle

turtle.penup()
turtle.goto(-200, 0)

while turtle.xcor() < 200:
    turtle.dot(20, "red")
    turtle.forward(40)

Elke ronde zet de schildpad een stip en loopt hij 40 verder. Zodra hij op 200 of verder staat, stopt de loop. Tel zelf maar: dat zijn tien stippen.

Opdracht: een trap​

Teken een trap van linksonder naar rechtsboven: steeds 30 omhoog en 30 naar rechts, zolang de schildpad lager staat dan 140. Begin op (-150, -150).

Een zwarte trap met gelijke treden die van linksonder naar rechtsboven loopt

import turtle

turtle.penup()
turtle.goto(-150, -150)
turtle.pendown()
Klik hier voor een tip.

turtle.ycor() geeft hoe hoog de schildpad staat. Een trede is left(90), forward(30), right(90), forward(30). Na een trede kijkt de schildpad weer naar rechts.

Klik hier voor de oplossing.
import turtle

turtle.penup()
turtle.goto(-150, -150)
turtle.pendown()

while turtle.ycor() < 140:
turtle.left(90)
turtle.forward(30)
turtle.right(90)
turtle.forward(30)

Maak het je eigen​

De vraag bovenaan een while-loop mag over een lengte gaan, maar ook over de plek van de schildpad.

  • Draai in de spiraal van stap 1 net iets meer of minder dan 90 graden, zoals 91 of 89, en kijk wat er met de hoeken gebeurt.
  • Teken een ronde spiraal: een while-loop met circle(straal, 90), waarin de straal elke ronde groeit.
  • Laat de schildpad één keer tegen het plafond stuiteren. Begin op (-250, -150) en loop schuin omhoog tot ycor() boven 150 komt. Draai dan 90 graden naar rechts, en loop met een tweede while-loop schuin omlaag tot hij weer onder -150 komt.
  • Zet stippen tot de rand die elke stap groter worden, met een tweede variabele die in de loop meegroeit.

Door naar het volgende project: Een straat vol huizen.