Compare commits
27 Commits
Author | SHA1 | Date | |
---|---|---|---|
a92236b3d8 | |||
832bb77987 | |||
46713ef6c3 | |||
f9b17a844a | |||
c5e3f2c673 | |||
3a12314332 | |||
3c9c30e489 | |||
dd28c6318e | |||
d43c0f6e23 | |||
e0da743cb4 | |||
3774b705a2 | |||
c1f6e45e36 | |||
7c6d3a0509 | |||
25e83b52f3 | |||
3640ddbd0e | |||
7f3b07e43f | |||
dd6e937472 | |||
1b9dfd1622 | |||
58ac6429df | |||
75461512f7 | |||
a7a91459ff | |||
4bd5b556a6 | |||
cf32012d4e | |||
19e49652f8 | |||
691da3605f | |||
34c5a5e216 | |||
2ab7175283 |
@ -81,3 +81,9 @@ Your banana keyboard is ready!
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and run the [banana keyboard](/microbit/lhpkbr) script on it. Tap your banana instrument to play sound against... the fruit!
|
||||
|
||||
|
||||
### ~avatar boothing
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/banana-keyboard/challenges)!
|
||||
|
||||
### ~
|
||||
|
@ -56,9 +56,9 @@ basic.forever(() => {
|
||||
}
|
||||
if (eggY1 == 4) {
|
||||
if (basketX1 == eggX1) {
|
||||
game.addScore(1) // ***
|
||||
game.addScore(1)
|
||||
} else {
|
||||
game.removeLife(1) // ***
|
||||
game.removeLife(1)
|
||||
}
|
||||
}
|
||||
basic.pause(300)
|
||||
@ -142,7 +142,7 @@ basic.forever(() => {
|
||||
game.removeLife(1)
|
||||
}
|
||||
}
|
||||
basic.pause(fallingPause1) // ***
|
||||
basic.pause(fallingPause1)
|
||||
})
|
||||
|
||||
```
|
||||
|
@ -13,15 +13,17 @@ Welcome! This activity will teach how to use the 1st micro:bit to chart the seco
|
||||
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
|
||||
|
||||
```blocks
|
||||
radio.sendNumber(input.acceleration(Dimension.X))
|
||||
radio.sendNumber(input.acceleration(Dimension.X));
|
||||
```
|
||||
|
||||
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
radio.sendNumber(input.acceleration(Dimension.X))
|
||||
})
|
||||
radio.sendNumber(input.acceleration(Dimension.X));
|
||||
});
|
||||
|
||||
|
||||
```
|
||||
|
||||
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
|
||||
|
@ -54,3 +54,8 @@ You hacked your headphones!
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and program [light beatbox](/microbit/lessons/light-beatbox/activity) music on it. Press the reset button to restart your music player!
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/light-beatbox/activity)!
|
||||
|
||||
### ~
|
||||
|
@ -8,10 +8,10 @@ Collection
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [tutorial](/microbit/lessons/headbands/tutorial)
|
||||
* [activity](/microbit/lessons/headbands/activity)
|
||||
* [quiz](/microbit/lessons/headbands/quiz)
|
||||
* [quiz answers](/microbit/lessons/headbands/quiz-answers)
|
||||
* [challenges](/microbit/lessons/headbands/challenges)
|
||||
|
||||
|
||||
## Class
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
# headbands challenges
|
||||
|
||||
These challenges will teach you how to create a fun charades game to play with your friends. #docs
|
||||
# headbands activity
|
||||
|
||||
## Before we get started
|
||||
|
@ -6,7 +6,7 @@ create a charades game with a collection of strings #offset #screen #variables
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
@ -6,7 +6,7 @@ create a charades game with a collection of strings #offset #screen #variables
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
@ -39,8 +39,14 @@ ghost.change(LedSpriteProperty.Blink, 100);
|
||||
|
||||
We want to identify the food so the player moves towards the food. We need to set the `brightness` of the `variable` food to 8. The brightness of the LED screen is expressed as a number between 0 and 255.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
|
||||
```
|
||||
|
||||
We want to include a block from the Loops drawer called `While`. Then set the `While` loop to `true`. This code will be important for repeating code of the game logic of the game. The game will continue to run using `While` loop while the Boolean condition is true. Finally, include a `pause` of 400 milliseconds before the logic of the game begins.
|
||||
|
||||
@ -50,52 +56,223 @@ let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400)
|
||||
basic.pause(400);
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
Let's create a function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The first condition will check if the horizontal coordinates of the ghost is less than the horizontal coordinates of the hero. We create a function from the Game drawer that will check the coordinates of the hero and the ghost. Finally, change the x-direction of the ghost by 1.
|
||||
|
||||
Then create another function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The second condition will check if the horizontal coordinates of the ghost is greater than the x-direction of hero. We create a function from the Game drawer that will check the x-direction of hero and ghost. Finally, change the x-direction of the ghost by -1.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) > hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (false) {
|
||||
}
|
||||
else if (false) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
Let's create the third function and forth function that continues the same logic in the y-direction of pacman and ghost. We create a function from the Game drawer that will check the y-direction of pacman and ghost. Finally, change the y-direction of the ghost to continue following pacman.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
Let's enable pacman to move in the x-direction and move in the y-direction with acceleration using the micor:bit sensor
|
||||
|
||||

|
||||
|
||||
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.X) > 200) {
|
||||
hero.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.X) < -200 ) {
|
||||
hero.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.Y) > 200) {
|
||||
hero.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.Y) > -200 ) {
|
||||
hero.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Let's setup the logic for the food. If hero is `touching` "food", increase the score of the game by 1 and `set` ``x`` -direction of food randomly randomly from 0 to 4 and `set` ``y``-direction of food randomly from 0 to 4.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.X) > 200) {
|
||||
hero.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.X) < -200 ) {
|
||||
hero.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.Y) > 200) {
|
||||
hero.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.Y) > -200 ) {
|
||||
hero.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (hero.isTouching(food)) {
|
||||
game.addScore(1);
|
||||
food.set(LedSpriteProperty.X, Math.random(5));
|
||||
food.set(LedSpriteProperty.Y, Math.random(5));
|
||||
}
|
||||
|
||||
**Do not disconnect the blocks from the conditional statements. We are focusing on this section of the code and are not showing the entire code**
|
||||
}
|
||||
|
||||
Let's setup the logic for the food and the ghost to be in different quadrants.
|
||||
|
||||

|
||||
```
|
||||
|
||||
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
|
||||
|
||||
The game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
|
||||
|
||||

|
||||
Let's setup the logic for the food and the ghost to be in different quadrants. Finally, the game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
|
||||
|
||||
**Do not disconnect the conditional statements blocks from the remaining blocks. We are focusing on this section of the code and are not showing the entire code**
|
||||
```blocks
|
||||
|
||||
The game can also use the buttons. Let's create a `while` loop for button A is pressed. If button A is pressed, the micro:bit will display the word Hero. Let's use a `while` loop for button B is pressed. If button B is pressed, the micro:bit will display image of the hero.
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
let ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.X) > 200) {
|
||||
hero.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.X) < -200 ) {
|
||||
hero.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.Y) > 200) {
|
||||
hero.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.Y) > -200 ) {
|
||||
hero.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (hero.isTouching(food)) {
|
||||
game.addScore(1);
|
||||
food.set(LedSpriteProperty.X, Math.random(5));
|
||||
food.set(LedSpriteProperty.Y, Math.random(5));
|
||||
if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) < 2) {
|
||||
ghost.set(LedSpriteProperty.X, 4);
|
||||
ghost.set(LedSpriteProperty.Y, 4);
|
||||
}
|
||||
else if (food.get(LedSpriteProperty.X) > 2 && food.get(LedSpriteProperty.Y) < 2) {
|
||||
ghost.set(LedSpriteProperty.X, 0);
|
||||
ghost.set(LedSpriteProperty.Y, 4);
|
||||
}
|
||||
else if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) > 2) {
|
||||
ghost.set(LedSpriteProperty.X, 4);
|
||||
ghost.set(LedSpriteProperty.Y, 0);
|
||||
}
|
||||
else {
|
||||
ghost.set(LedSpriteProperty.X, 0);
|
||||
ghost.set(LedSpriteProperty.Y, 0);
|
||||
}
|
||||
}
|
||||
if (hero.isTouching(ghost)) {
|
||||
game.gameOver();
|
||||
}
|
||||
|
||||

|
||||
}
|
||||
0.set(LedSpriteProperty.X, 4);
|
||||
|
||||
|
||||
```
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
You can review the final code for [hero](/microbit/numraj)
|
||||
Congratulations! You have a homemade hero game based on the classic version of PacMan
|
||||
|
||||
### ~
|
||||
|
||||
|
@ -6,4 +6,4 @@ create a fake wifi app to trick your friends
|
||||
|
||||
* [activity](/microbit/lessons/prank-wifi/activity)
|
||||
* [quiz](/microbit/lessons/prank-wifi/quiz)
|
||||
|
||||
* [quiz answers](/microbit/lessons/prank-wifi/quiz-answers)
|
||||
|
@ -130,7 +130,7 @@ basic.forever(() => {
|
||||
. . # # #
|
||||
. # # # #
|
||||
# # # # #
|
||||
`) // ***
|
||||
`)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
@ -15,9 +15,9 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = math.abs(input.acceleration("x"))
|
||||
let yAccel = math.abs(input.acceleration("y"))
|
||||
let zAccel = math.abs(input.acceleration("z"))
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
```
|
||||
|
||||
<br/>
|
||||
@ -29,6 +29,9 @@ let zAccel = math.abs(input.acceleration("z"))
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
```
|
||||
|
||||
@ -39,8 +42,12 @@ let sum = xAccel + yAccel + zAccel
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum < 1400) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -59,8 +66,12 @@ if (sum < 1400) {
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum >= 1400 && sum < 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -70,7 +81,7 @@ if (sum >= 1400 && sum < 1680) {
|
||||
}
|
||||
```
|
||||
|
||||
## 5. Write the 'if statement' needed to display this specific plot image on the device
|
||||
## 5. Write the code to display this specific image on the device
|
||||
|
||||

|
||||
|
||||
@ -78,9 +89,13 @@ if (sum >= 1400 && sum < 1680) {
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum >= 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
|
@ -6,7 +6,7 @@ create a fake wifi app to trick your friends #string #forever #abs #var #plot #i
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/tutorial)
|
||||
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -37,7 +37,7 @@ After two button presses, **count** will be equal to 2.
|
||||
## 5. If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed after five button presses on Button A. Explain why that particular area is shaded.
|
||||
|
||||
```blocks
|
||||
count_ = 0
|
||||
let count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
|
@ -6,7 +6,7 @@ counter that keeps track of how many times button "A" has been pressed #LED #scr
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/tutorial).
|
||||
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -37,7 +37,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
## 4. Draw which LED is ON after running this code and pressing Button A five times. Explain why you chose to draw that number.
|
||||
|
||||
```blocks
|
||||
count_ = 0
|
||||
let count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
|
@ -150,9 +150,11 @@ Trim any leftover fabric, threads or tape.
|
||||
|
||||
Your watch is ready!
|
||||
|
||||
### Step 22
|
||||
### ~avatar avatar
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and upload the [rock paper scissors](/microbit/rrwupw) script on it. Shake your watch to play against... the micro:bit!
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/rock-paper-scissors/activity)!
|
||||
|
||||
### ~
|
||||
|
||||
### Acknowledgements
|
||||
|
||||
|
@ -9,5 +9,5 @@
|
||||
"dependencies": {
|
||||
"microbit": "file:../microbit"
|
||||
},
|
||||
"installedVersion": "barvfb"
|
||||
"installedVersion": "rlfgis"
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "microbit",
|
||||
"description": "The microbit core library",
|
||||
"installedVersion": "dnarsa",
|
||||
"installedVersion": "tsmdvf",
|
||||
"files": [
|
||||
"README.md",
|
||||
"core.d.ts",
|
||||
@ -23,7 +23,10 @@
|
||||
"id": "microbit",
|
||||
"name": "BBC micro:bit",
|
||||
"title": "JavaScript for BBC micro:bit",
|
||||
"cloud": false,
|
||||
"cloud": {
|
||||
"workspace": false,
|
||||
"packages": true
|
||||
},
|
||||
"blocksprj": {
|
||||
"id": "blocksprj",
|
||||
"config": {
|
||||
@ -68,13 +71,9 @@
|
||||
"isNative": false,
|
||||
"hasHex": true
|
||||
},
|
||||
"serial" : {
|
||||
"serial": {
|
||||
"manufacturerFilter": "^mbed$",
|
||||
"log": true
|
||||
},
|
||||
"cloud" : {
|
||||
"workspace": false,
|
||||
"packages": true
|
||||
}
|
||||
"log": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "kindscript-microbit",
|
||||
"version": "0.2.3",
|
||||
"version": "0.2.5",
|
||||
"description": "BBC micro:bit target for KindScript",
|
||||
"keywords": [
|
||||
"JavaScript",
|
||||
@ -30,6 +30,6 @@
|
||||
"typescript": "^1.8.7"
|
||||
},
|
||||
"dependencies": {
|
||||
"kindscript": "0.2.5"
|
||||
"kindscript": "0.2.7"
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user