Skip to Content

Programamos la micro:bit - Ejercicio con la radio bluetooth

El propósito de este programa es conseguir que la microbit juegue contra otra microbit al piedra -papel-tijera.

Piedra

Papel

Tijeras

Vamos a programarlo en nuestras clases de CyR de Secundaria

La idea del juego la he sacado de los tutoriales de aprendizaje de la microbit y he mezclado varias ideas para hacer este programa.

Descripción:
Al agitar la microbit, se lanza por radio un número aleatorio entre 1 y 3 que debe recibir la otra microbit.

El valor 1 representa la piedra, el 2 el papel y el 3 las tijeras.

Cada matriz de leds representará el valor recibido de la otra tarjeta y tras un tiempo de pausa indicará si hemos ganado, perdido o empatado comparándolo con el valor que hemos emitido.

Las reglas son sencillas Piedra gana a Tijeras, Tijeras gana a Papel y Papel gana a Piedra.

Si el valor escogido es el mismo, entonces hay un empate

En este enlace te dejo un vídeo con la funcionalidad del juego programado.

Para poder implementar el juego necesitamos dos variables que representen la opción escogida por mi tarjeta y una variable que represente la opción escogida por la otra tarjeta y que recibiremos por radio

let myChoice = 0

let opponentChoice = 0

 Después inicializamos el canal de radio por el que comunicamos la tarjetas y escogemos un valor para mi opción

radio.setGroup(5)

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

​myChoice = randint(1, 3)

​radio.sendNumber(myChoice)

})

El útimo bloque de código es para determinar qué opción mostrar por la pantalla de leds y determinar quién ha ganado la tirada

radio.onReceivedNumber(function (receivedNumber) {

​opponentChoice = receivedNumber

​// Mostrar la elección del oponente

​if (opponentChoice == 1) { //Oponente ha elegido Piedra

​basic.showLeds(`

​. . . . .

​. # # # .

​. # # # .

​. # # # .

​. . . . .

​`)

​} else if (opponentChoice == 2) { // El oponente ha elegido papel

​basic.showLeds(`

​# # # # #

​# . . . #

​# . . . #

​# . . . #

​# # # # #

​`)

​} else { // El oponente ha elegido tijeras

​basic.showLeds(`

​# . . . #

​. # . # .

​. . # . .

​# # . # #

​# # . # #

​`)

​}

​// Breve pausa para que el jugador vea la elección del oponente

​basic.pause(3000)

​// Determinar el resultado

​if (myChoice == opponentChoice) {

​basic.showString("Empate")

​music.playTone(262, music.beat(BeatFraction.Whole))

​} else if (myChoice == 1 && opponentChoice == 3 || myChoice == 2 && opponentChoice == 1 || myChoice == 3 && opponentChoice == 2) {

​basic.showString("Ganas")

​music.playTone(523, music.beat(BeatFraction.Whole))

​} else {

​basic.showString("Pierdes")

​music.playTone(131, music.beat(BeatFraction.Whole))

​}

})

Después de probar nuestro código, sólo queda programarlo en un par de tarjetas y jugar un ratito en clase para pasarlo bien tras haber aprendido algunos conceptos de programación.