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

92 lines
2.2 KiB
Markdown
Raw Normal View History

2016-03-26 00:47:20 +01:00
# headbands challenges
These challenges will teach you how to create a fun charades game to play with your friends. #docs
## Before we get started
2016-03-31 02:01:28 +02:00
Your beginning code should look like this:
2016-03-26 00:47:20 +01:00
2016-03-31 02:01:28 +02:00
```blocks
let coll = (<string[]>[])
2016-03-26 00:47:20 +01:00
coll.push("puppy")
coll.push("clock")
coll.push("night")
coll.push("cat")
coll.push("cow")
input.onLogoUp(() => {
let index = Math.random(coll.length)
let word = coll[index]
basic.showString(word, 150)
})
input.onScreenDown(() => {
game.addScore(1)
})
game.startCountdown(30000)
```
### Challenge 1
Let's add more words for the player to act out! But first, we need to increase the time in one round to give the player more time get through all the words. Let's change the `game->start countdown` statement.
2016-03-31 02:01:28 +02:00
```blocks
let coll = (<string[]>[])
coll.push("puppy")
coll.push("clock")
coll.push("night")
coll.push("cat")
coll.push("cow")
input.onLogoUp(() => {
let index = Math.random(coll.length)
let word = coll[index]
basic.showString(word, 150)
})
input.onScreenDown(() => {
game.addScore(1)
})
game.startCountdown(60000)
2016-03-26 00:47:20 +01:00
```
* Run your code to see if it works as expected
### Challenge 2
Now let's add 5 more words to our list of charade words. Right above the the line `word:=coll->at(index)` add 5 lines that say `coll->add("")`. In this example, we will add the words **bicycle, telephone, sun, car, and ant** but you can add whatever words you like.
2016-03-31 02:01:28 +02:00
```blocks
let coll.push("puppy")
2016-03-26 00:47:20 +01:00
coll.push("clock")
coll.push("night")
coll.push("cat")
coll.push("cow")
2016-03-31 02:01:28 +02:00
coll.push("bicycle")
coll.push("telephone")
coll.push("sun")
coll.push("car")
coll.push("ant")
input.onLogoUp(() => {
let index = Math.random(coll.length)
let word = coll[index]
basic.showString(word, 150)
})
input.onScreenDown(() => {
game.addScore(1)
})
game.startCountdown(30000)
2016-03-26 00:47:20 +01:00
```
* Run your code to see if it works as expected.
### Challenge 3
Remove a life using `game->remove life` when the screen is down using the `input->on screen down` event.
### Challenge 4
The collection has a function `random` that returns a random element. Update your code to use this function instead of using `math->random`.
### Challenge 5!
Play the game and try guessing all these words in less than 2 minutes!