pxt-calliope/docs/reference/js/lessons/compass/challenges.md

89 lines
1.8 KiB
Markdown
Raw Normal View History

2016-03-26 00:47:20 +01:00
# compass challenges
Display the direction that the BBC micro:bit is facing using the compass
## Before we get started
Complete the following guided tutorial:
2016-04-13 17:27:45 +02:00
* [tutorial](/lessons/compass/tutorial)
2016-03-26 00:47:20 +01:00
At the end of the tutorial, click `keep editing`. Your code should look like this:
```
input.calibrate()
basic.forever(() => {
let degrees = input.compassHeading()
if (degrees < 45) {
basic.showString("N", 100)
} else if (degrees < 135) {
basic.showString("E", 100)
}
else if (degrees < 225) {
basic.showString("S", 100)
}
else {
basic.showString("W", 100)
}
})
```
### Challenge 1
Instead of displaying `N` when the BBC micro:bit is pointing North, display a star to indicate the north star.
```
input.calibrate()
basic.forever(() => {
let degrees1 = input.compassHeading()
if (degrees1 < 45) {
basic.plotImage(`
# . # . #
. # # # .
# # # # #
. # # # .
# . # . #
`) // ***
} else if (degrees1 < 135) {
basic.showString("E", 100)
}
else if (degrees1 < 225) {
basic.showString("S", 100)
}
else {
basic.showString("W", 100)
}
})
```
* Run your code to see if it works as expected
### Challenge 2
Instead of displaying just `N`, `W`, `S`, or `E`, display the full word.
```
input.calibrate()
basic.forever(() => {
let degrees2 = input.compassHeading()
if (degrees2 < 45) {
basic.showString("NORTH", 100) // ***
} else if (degrees2 < 135) {
basic.showString("EAST", 100) // ***
}
else if (degrees2 < 225) {
basic.showString("SOUTH", 100) // ***
}
else {
basic.showString("WEST", 100) // ***
}
})
```
* Run your code to see if it works as expected
### Challenge 3
Display your own unique message for each direction.