La semana pasada programábamos este juego con la microbit siguiendo uno de los tutoriales de Makecode, pero al intentar implementar el contenido para que se mostrase por bluetooth la opción escogida en la otra tarjeta, el juego quedaba un poco confuso.
Vamos a crear otra versión de este programa en el que incluiremos funciones con parámetros para intentar acercarnos más a la idea del juego.
En este enlace puedes ver un pequeño vídeo con el programa terminado y ejecutándose en dos microbits.
function quien_gana (mi_opcion: number, tu_opcion: number) {
if (mi_opcion == tu_opcion) {
basic.showIcon(IconNames.Asleep)
} else if (mi_opcion == 1 && tu_opcion == 3 ||
(mi_opcion == 2 && tu_opcion == 1 ||
mi_opcion == 3 && tu_opcion == 2)) {
basic.showIcon(IconNames.Happy)
} else {
basic.showIcon(IconNames.Sad)
}
}
radio.onReceivedNumber(function (receivedNumber) {
tu_opción = receivedNumber
})
function mostrar (opción: number) {
if (opción == 1) {
basic.showLeds(`
. . . . .
. # # # .
. # # # .
. # # # .
. . . . .
`)
} else if (opción == 2) {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #
`)
} else {
basic.showLeds(`
# . . . #
. # . # .
. . # . .
# # . # #
# # . # #
`)
}
}
input.onGesture(Gesture.Shake, function () {
mi_opción = randint(1, 3)
radio.sendNumber(mi_opción)
mostrar(mi_opción)
})
let mi_opción = 0
let tu_opción = 0
radio.setGroup(1)
basic.forever(function () {
if (mi_opción != 0 && tu_opción != 0) {
quien_gana(mi_opción, tu_opción)
tu_opción = 0
mi_opción = 0
basic.pause(1000)
}
basic.pause(1000)
})
function quien_gana (mi_opcion: number, tu_opcion: number) {
if (mi_opcion == tu_opcion) {
basic.showIcon(IconNames.Asleep)
} else if (mi_opcion == 1 && tu_opcion == 3 ||
(mi_opcion == 2 && tu_opcion == 1 ||
mi_opcion == 3 && tu_opcion == 2)) {
basic.showIcon(IconNames.Happy)
} else {
basic.showIcon(IconNames.Sad)
}
}
radio.onReceivedNumber(function (receivedNumber) {
tu_opción = receivedNumber
})
function mostrar (opción: number) {
if (opción == 1) {
basic.showLeds(`
. . . . .
. # # # .
. # # # .
. # # # .
. . . . .
`)
} else if (opción == 2) {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #
`)
} else {
basic.showLeds(`
# . . . #
. # . # .
. . # . .
# # . # #
# # . # #
`)
}
}
input.onGesture(Gesture.Shake, function () {
mi_opción = randint(1, 3)
radio.sendNumber(mi_opción)
mostrar(mi_opción)
})
let mi_opción = 0
let tu_opción = 0
radio.setGroup(1)
basic.forever(function () {
if (mi_opción != 0 && tu_opción != 0) {
quien_gana(mi_opción, tu_opción)
tu_opción = 0
mi_opción = 0
basic.pause(1000)
}
basic.pause(1000)
})
Por cierto, en este enlace puedes descargarte el fichero con el programa (si es que no vas a escribir tu código) pero sólo si eres alumno del colegio 😜🤓