pxt-calliope/docs/projects/turtle-square.md
2018-10-24 12:02:31 -07:00

1.8 KiB

Turtle Square

Introduction @unplugged

Imagine that there's a virtual turtle, as small as an LED, that you can control with commands. In this tutorial, you will learn to use the turtle and draw a square.

Moving the turtle @fullscreen

The turtle starts in the center of the screen heading upward. Place a ||turtle:forward|| block to make it move up.

turtle.forward(1)

Turning and moving @fullscreen

Place a ||turtle:turnRight|| to turn the turtle and place another ||turtle:forward|| block to make it move again.

turtle.forward(1)
turtle.turnRight()
turtle.forward(1)

Drawing a square

If you add enough ||turtle:turnRight|| and ||turtle:forward|| blocks, the turtle will eventually draw a square.

You can move the blocks into a ||input:on button pressed|| to easily run the code again.

input.onButtonPressed(Button.A, function() {
    turtle.forward(1)
    turtle.turnRight()
    turtle.forward(1)
    turtle.turnRight()
    turtle.forward(1)
    turtle.turnRight()
    turtle.forward(1)
    turtle.turnRight()
})

"for" is for repetition

Did you notice the pattern of repeated blocks needed to draw a square? Try using a for loop to achieve the same effect.

input.onButtonPressed(Button.A, function() {
    for(let i = 0; i <=4; ++i) {
        turtle.forward(1)
        turtle.turnRight()
    }
})

Leaving a trail

The turtle holds a pen that can turn on LEDs. If you add the ||turtle:pen|| block, it will leave a trail as the turtle moves.

input.onButtonPressed(Button.A, function() {
    turtle.pen(TurtlePenMode.Down)
    for(let i = 0; i <=4; ++i) {
        turtle.forward(1)
        turtle.turnRight()
    }
})
microturtle=github:Microsoft/pxt-microturtle#v0.0.9