Microbit‎ > ‎Variables‎ > ‎

Actividad Variables usando Microbit

Actividad: Scorekeeper

Esta actividad de micro: bit guía a los estudiantes a crear un programa con tres variables que mantendrán puntaje para su juego Piedra Papel o Tijera Scissors .

Dígales a los alumnos que van a crear un programa que actuará como anotador de puntos para su próximo juego Piedra Papel o Tijera . Tendrán que crear variables para las partes de la puntuación que cambien en el transcurso de una sesión de juego. ¿Cuáles son esas variables?

  •  La cantidad de veces que gana el primer jugador
  •  La cantidad de veces que gana el segundo jugador
  •  la cantidad de veces que los jugadores empatan

Crear y nombrar variables: Guíe a los alumnos a crear nombres significativos para sus variables.

  •  ¿Cuál sería un nombre único y claro para la variable que hará un seguimiento de la cantidad de veces que gana el jugador A?
  •  Las sugerencias de los estudiantes pueden ser: PAW , PlayerA , AButtonPress , AButtonCount , PlayerAWins ...
  •  Discuta por qué (o por qué no) las diferentes sugerencias dejan en claro qué valor tendrá la variable. En general, los nombres de variables deberían describir claramente qué tipo de información poseen.

En MakeCode, desde el menú Variables, crea y nombra estas tres variables: PlayerAWins , PlayerBWins , PlayersTie .

Haz una nueva variable

Establecer nuevo nombre de variable

Inicializando el valor de la variable

Es importante dar a sus variables un valor inicial. El valor inicial es el valor que tendrá la variable cada vez que se inicie el programa. Para nuestro programa de contador, le daremos a cada variable el valor 0 (cero) al comienzo del programa.

let PlayerAWins = 0 let PlayerBWins = 0 let PlayersTie = 0

Actualizando el valor de la variable

En nuestro programa, queremos hacer un seguimiento de la cantidad de veces que cada jugador gana y la cantidad de veces que empatan. Podemos usar los botones A y B para hacer esto.

Pseudocódigo:

  •  Presiona el botón A para registrar una victoria para el jugador A
  •  Presiona el botón B para registrar una victoria para el jugador B
  •  Presione el botón A y el botón B para grabar un empate

Ya iniciamos estas variables y ahora necesitamos codificar para actualizar los valores en cada ronda del juego.

  •  Cada vez que el anotador de puntos presiona el botón A para registrar una ganancia para el jugador A, queremos agregar 1 al valor actual de la variable PlayerAWins .
  •  Cada vez que el anotador de puntos presiona el botón B, para registrar una ganancia para el jugador B, queremos agregar 1 al valor actual de la variable PlayerBWins .
  •  Cada vez que el anotador presiona tanto el botón A como el botón B al mismo tiempo para registrar un empate, queremos agregar 1 al valor actual de la variable PlayersTie .

Desde el menú de Entrada, arrastre 3 de los manejadores de eventos 'on button A pressed' a su Área de Trabajo de Programación.

onButtonPressed A

Deje un bloque con 'A'. Use el menú desplegable en el bloque para elegir 'B' para el segundo bloque y 'A + B' para el tercer bloque.

En el menú Variables, arrastre 3 de los bloques 'cambiar elemento por 1' a su Área de trabajo de programación.

Cambiar variable

Coloque un bloque de cambio en cada uno de los bloques presionados por botón.

Elija la variable adecuada de los menús desplegables en los bloques de cambios.

let PlayerAWins = 0 let PlayerBWins = 0 let PlayersTie = 0 input.onButtonPressed(Button.A, () => { PlayerAWins += 1 }) input.onButtonPressed(Button.B, () => { PlayerBWins += 1 }) input.onButtonPressed(Button.AB, () => { PlayersTie += 1 })

Comentarios del usuario

Siempre que el anotador presione el botón A, el botón B o ambos botones juntos, le daremos al usuario una retroalimentación visual reconociendo que el usuario presionó un botón. Podemos hacer esto codificando nuestro programa para mostrar:

  •  una 'A' cada vez que el usuario presiona el botón A para registrar una ganancia para el jugador A,
  •  una 'B' por cada vez que el usuario presiona el botón 'B' para registrar una ganancia para el Jugador B,
  •  una 'T' por cada vez que el usuario presiona tanto el botón A como el botón B para grabar un empate.

Podemos mostrar una 'A', 'B' o 'T' utilizando el bloque 'mostrar leds' o el bloque 'show string'.

Mostrar LED

En este ejemplo, hemos utilizado el bloque 'mostrar leds'.

let PlayerAWins = 0 let PlayerBWins = 0 let PlayersTie = 0 input.onButtonPressed(Button.A, () => { PlayerAWins += 1 basic.showLeds(` . # # # . . # . # . . # # # . . # . # . . # . # . `) basic.clearScreen() }) input.onButtonPressed(Button.B, () => { PlayerBWins += 1 basic.showLeds(` . # # . . . # . # . . # # # . . # . # . . # # . . `) basic.clearScreen() }) input.onButtonPressed(Button.AB, () => { PlayersTie += 1 basic.showLeds(` . # # # . . . # . . . . # . . . . # . . . . # . . `) basic.clearScreen() })

Tenga en cuenta que agregamos un bloque de 'pantalla clara' después de mostrar 'A', 'B' o 'T'. ¿Qué crees que pasaría si no borramos la pantalla? Intentalo.

Mostrando los valores finales de las variables

Para finalizar nuestro programa, podemos agregar un código que le indique a micro: bit que muestre los valores finales de nuestras variables. Como ya hemos utilizado los botones A y B, podemos usar el bloque de manejo de eventos 'on shake' para activar este evento. Podemos usar los bloques 'show string', 'show leds', 'pause' y 'show number' para mostrar estos valores finales de una manera clara. Aquí está el programa completo.

let PlayersTie = 0 let PlayerBWins = 0 let PlayerAWins = 0 input.onButtonPressed(Button.A, () => { PlayerAWins += 1 basic.showLeds(` . # # # . . # . # . . # # # . . # . # . . # . # . `) basic.clearScreen() }) input.onButtonPressed(Button.B, () => { PlayerBWins += 1 basic.showLeds(` . # # . . . # . # . . # # # . . # . # . . # # . . `) basic.clearScreen() }) input.onButtonPressed(Button.AB, () => { PlayersTie += 1 basic.showLeds(` . # # # . . . # . . . . # . . . . # . . . . # . . `) basic.clearScreen() }) input.onGesture(Gesture.Shake, () => { basic.showString("Wins:") basic.showLeds(` . # # # . . # . # . . # # # . . # . # . . # . # . `) basic.showNumber(PlayerAWins) basic.pause(1000) basic.showLeds(` . # # . . . # . # . . # # # . . # . # . . # # . . `) basic.showNumber(PlayerBWins) basic.pause(1000) basic.showString("Ties:") basic.showNumber(PlayersTie) basic.pause(1000) basic.clearScreen() }) PlayerAWins = 0 PlayerBWins = 0 PlayersTie = 0

¡Pruébalo!

Descarga el programa Scorekeeper al micro: bit, y haz que los alumnos jueguen una última ronda de Rock Paper Scissors usando sus micro: bits para actuar como el Scorekeeper.

'Agregando' con operaciones matemáticas

Hay más que podemos hacer con la entrada que recibimos usando este programa. Podemos usar operaciones matemáticas en nuestras variables.

Ejemplo: Tal vez le gustaría hacer un seguimiento de, y mostrar al jugador el número total de 'rondas' que se jugaron.Para hacer esto, podemos agregar los valores almacenados en las variables que creamos para hacer un seguimiento de cuántas veces ganó cada jugador y cuántas veces empataron.

Para hacer esto, podemos agregar el código a nuestro programa bajo el controlador de eventos 'on shake'.

  •  Primero, muestre una cuerda para mostrar al jugador que la siguiente suma representa el número total de rondas jugadas.
  •  Nuestro programa agregará los valores almacenados en las variables PlayerAWins , PlayerBWins y PlayersTie y luego mostrará la suma de esta operación matemática.
  •  Los bloques para las operaciones matemáticas que suman, restan, multiplican y dividen en una lista en la sección de Matemáticas de la Caja de herramientas.

    Nota: Aunque se muestran 4 bloques para estas 4 operaciones, puede acceder a cualquiera de las cuatro operaciones desde cualquiera de los cuatro bloques, y también puede acceder a la operación de exponente desde estos bloques.

Agregar bloque

Selector de operador

  •  Reemplace los valores predeterminados de cero con los nombres de las variables que queremos agregar juntos.Tenga en cuenta que debido a que estamos agregando tres variables juntas, necesitamos un segundo bloque matemático. Primero agregamos los valores de PlayerAWins y PlayerBWins , luego agregamos PlayersTie .
let PlayersTie = 0 let PlayerBWins = 0 let PlayerAWins = 0 input.onGesture(Gesture.Shake, () => { basic.showString("Total rounds played:") basic.showNumber(PlayerAWins + PlayerBWins + PlayersTie) })
  •  Guarde, descargue y pruebe el programa nuevamente para asegurarse de que se ejecuta correctamente y muestra los números correctos para cada variable.

Recuerde que el micro: bit es un dispositivo que procesa la entrada y la muestra como salida de alguna manera. Al almacenar valores en variables, puede realizar operaciones matemáticas sobre esos datos que le proporcionan información útil.

¿Qué otras operaciones matemáticas podrían proporcionar información valiosa a partir de los valores almacenados en estas variables?

Ejemplos:

  •  Calcule y muestre las victorias y / o pérdidas de un jugador como un porcentaje de todas las rondas jugadas.
  •  Calcule una visualización de la cantidad de juegos empatados como un porcentaje de todas las rondas jugadas.
Comments