Tug-Of-LED

Introduction

The tug-of-LED is a virtual variation of the popular tug of war rope game. Instead of a rope, we’ll use the LED screen by pulling the LED light through the center row.

A micro:bit holding a rope

Step 1

Create a new variable ||variables:rope|| and put it in the ||basic:on start||. This will track the progress of the game. The ||variables:rope|| variable will be used as the x coordinate of the LED to lit so we set it to 2 to start.

let rope = 2

Step 2

Add a ||basic:forever|| loop that turns on the LED at the ||variables:rope|| position.

let rope = 2
basic.forever(function() {
    basic.clearScreen();
    led.plot(rope, 2);
})

Step 3

Add an event on ||input:button A pressed|| to change the ||variables:rope|| value by -0.1.

let rope = 2
input.onButtonPressed(Button.A, function () {
    rope += -0.1
})

Step 4

Add an event on ||input:button B pressed|| to change the ||variables:rope|| value by 0.1.

let rope = 2
input.onButtonPressed(Button.B, function () {
    rope += 0.1
})

Step 5

Because a button press pulls the rope by 0.1 in either direction, plot the ||math:round|| value of ||variables:rope|| to the nearest LED.

let rope = 2
basic.forever(function() {
    basic.clearScreen()
    led.plot(Math.round(rope), 2)
})

Step 6

Back in the ||basic:forever||, add code to test ||logic:if|| the ||variables:rope|| is negative then ||basic:show|| A WINS on the screen.

let rope = 2
basic.forever(function() {
    basic.clearScreen();
    led.plot(Math.round(rope), 2);
    // @highlight
    if (rope < 0) {
        basic.showString("A WINS")
    }
})

Step 7

Add an ||logic:else if|| condition to test ||logic:if|| the ||variables:rope|| is greater than 4 then ||basic:show|| B WINS on the screen.

let rope = 2
basic.forever(function() {
    basic.clearScreen();
    led.plot(Math.round(rope), 2);
    if (rope < 0) {
        basic.showString("A WINS")
    } else if (rope > 4) {
        // @highlight
        basic.showString("B WINS")
    }
})

Step 8

Find a friend and start button smashing!