pxt-calliope/docs/projects/turtle-square.md

79 lines
1.8 KiB
Markdown
Raw Normal View History

2018-09-11 18:02:40 +02:00
# Turtle Square
2018-09-11 19:38:58 +02:00
## Introduction @unplugged
2018-09-11 18:02:40 +02:00
2018-09-11 19:38:58 +02:00
Imagine that a virtual turtle, as big as an LED, that you can control it with commands.
In this tutorial, you will learn to use the turtle and draw a square.
2018-09-11 18:02:40 +02:00
2018-09-11 19:38:58 +02:00
## Moving the turtle @fullscreen
2018-09-11 18:02:40 +02:00
2018-09-11 19:38:58 +02:00
The turtle starts in the center of the screen facing up. Place a ``||turtle:forward||`` block to make it move up.
2018-09-11 18:02:40 +02:00
2018-09-11 19:38:58 +02:00
```blocks
turtle.forward(1)
```
2018-09-11 18:02:40 +02:00
2018-09-11 19:38:58 +02:00
## Turning and moving @fullscreen
2018-09-11 18:02:40 +02:00
2018-09-11 19:38:58 +02:00
Place a ``||turtle:turnRight||`` to turn the turtle and place another ``||turtle:forward||`` block to make it move again.
2018-09-11 18:02:40 +02:00
```blocks
2018-09-11 19:38:58 +02:00
turtle.forward(1)
2018-09-11 18:02:40 +02:00
turtle.turnRight()
2018-09-11 19:38:58 +02:00
turtle.forward(1)
2018-09-11 18:02:40 +02:00
```
## Drawing a square
2018-09-11 19:38:58 +02:00
If you add enough ``||turtle:turnRight||`` and ``||turtle:forward||`` block, the turtle
2018-09-17 23:19:03 +02:00
will eventually draw a square.
You can move the blocks in a ``||input:on button pressed||`` to easily run the code again.
2018-09-11 18:02:40 +02:00
```blocks
2018-09-11 19:38:58 +02:00
input.onButtonPressed(Button.A, function() {
turtle.forward(1)
turtle.turnRight()
turtle.forward(1)
turtle.turnRight()
turtle.forward(1)
2018-09-11 18:02:40 +02:00
turtle.turnRight()
2018-09-11 19:38:58 +02:00
turtle.forward(1)
turtle.turnRight()
})
```
## "For" is for repetition
Have you notice the repetition pattern in the blocks needed to draw a square?
Try to use a ``for`` loop to achieve the same effect.
```blocks
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 turns on LEDs. If you add the ``||turtle:pen||`` block,
it will leave a trail as it moves.
```blocks
input.onButtonPressed(Button.A, function() {
turtle.pen(TurtlePenMode.Down)
for(let i = 0; i <=4; ++i) {
turtle.forward(1)
turtle.turnRight()
}
})
2018-09-11 18:02:40 +02:00
```
```package
microturtle=github:Microsoft/pxt-microturtle#master
```