Standards Alignment (United Kingdom: CAS)

Uses a variable and relational operators within a loop to govern termination. (AL) (GE)

Uses logical reasoning to predict outcomes. (AL)

Detects and corrects errors i.e. debugging, in algorithms. (AL)

Creates programs that implement algorithms to achieve given goals. (AL)

Understands that programming bridges the gap between algorithmic solutions and computers.(AB)

Uses nested selection statements. (AL)

Activity

7 steps

Step One

This program recreates the “magic 8” ball. It asks the user to ask a question and it will give a random response.

The first step is to code the device to tell the user to ask a question. A string is to be displayed on the screen and this is achieved using the “show string” block found in the basic option of the block menu.

Drag the “show string” block onto the workspace and place it within an “on start” block. Click on the text “hello!” and change it to “Ask a question!”

basic.showString("Ask a question!")

The next stage is to display the number “8” on the screen to represent the magic 8 ball logo. The steps are repeated again.

basic.showString("Ask a question!")
basic.showNumber(8)

Step Two

Now the program displays “ask a question” and “8”, the user needs to get a response from the micro:bit. This is achieved by using the “Shake” gesture as an input. On the block menu choose the “input” option and select the “on shake” block and drag it onto the workspace.

Once in the workspace the “on” block can be changed to a number of gestures, such as tilt left or right. For this project, the shake gesture is selected.

input.onGesture(Gesture.Shake, function () {
})

The display of the micro:bit needs to be updated first by using a “Clear” block. This will clear any pattern currently being displayed on the micro:bit whether it be the sentence “Ask a question” of the number “8”. The “clear screen” block is found in the “basic” option under the “More” option of the block menu. Drag the block on to the workspace and place within the “on shake” block.

input.onGesture(Gesture.Shake, function () {
basic.clearScreen()
})

Step Three

Now the micro:bit has been programmed so it will respond to a shake gesture, the next step is to create a variable that a random number will be stored in. From the block menu select the “Variables” tab and click “Make a Variable”.

A popup dialogue box will then ask you to name your variable. In this example name it “Random”

When the micro:bit is shaken we would like the random number to be generated and stored in the variable “Random”. To achieve this, add the “Set item to” block into the workspace.

Place the “Set item to” block under the “clear screen” block and click on the down arrow next to the word "item". This will allow us to select the variable called “Random” which will currently be set to “0” when the micro:bit is shaken.

Step Five

The next step is to add a selection process using the IF statement found within the “Logic” option within the block menu.

Drag the “IF” block into the workspace and connect it to follow the “random” block. So if the micro:bit is shaken the screen is cleared, a random number is generated and stored in the variable “Random” - now we need to set what will happen for each of the different variable conditions.

Step Six

To ensure the micro:bit bases the IF statement on the random number, the value stored in the variable “Random” needs to be checked. The “Random” variable can be found from the 'Variables' option in the block menu.

The “Random” variable block is placed in the “equals” block to test the IF statement logic. If the “Random” variable is equal to "3" the first option is selected otherwise the second or third option is chosen.

Step Seven

Now the micro:bit has 3 possible options based upon the random number generated, the next step is to give the user an answer to their question. This is achieved by selecting the “show string” block from the basic option of the block menu and dragging it onto the workspace.

For each of the “then” parts of the “If” block, a “show string” block is required. Drag 3 from the menu or right click the block once in the workspace to duplicate. The strings should be modified for “yes”, “no” and “I don’t know”.