Simón dice

¡Pon a prueba tu memoria con este juego!

Los LEDs parpadearán en una secuencia que deberás recordar y repetir. Si lo haces correctamente, el juego se vuelve más y más desafiante.

Materiales

  • 1 placa Arduino
  • 1 Shield Educativa
  • 1 botón Tinkerkit
  • 1 cable Tinkerkit
  • 1 potenciómetro
  • 1 piezo
  • 5 LEDs
  • 5 resistencias de 220 ohm
  • 1 breadboard
  • 7 cables negros
  • 8 cables de colores

 

Instrucciones

  1. Conecta la shield encima de la placa Arduino.
  2. Conecta cinco LEDs a través del puente de la breadboard.
  3. Conecta una resistencia de 220 ohm al pin digital 2. Conéctala a la pata larga del primer LED.
  4. Conecta cada uno de los pins digitales 3 a 6 al LED correspondiente siguiendo el mismo método.
  5. Conecta la pata corta de los LEDs a un pin GND de Arduino utilizando los cables negros.
  6. Conecta el potenciómetro a la breadboard de la shield. Conecta el pin de en medio del potenciómetro a A0, el pin izquierdo a GND y el derecho a 5V.
  7. Conecta el piezo a GND y al pin digital 8.
  8. Conecta el botón tinkerKit a D9.
  9. Conecta el montaje Arduino al ordenador, carga el ejemplo SimonSays y prueba el juego.

Código

Puedes encontrar el código en “Archivo -> Ejemplos -> EducationShield>Block2-Sports>Projects>SimonSays

Cómo funciona

El juego empieza generando tantos números aleatorios como el valor de la variable turns. Los números aleatorios pueden ir de 0 hasta el número de LEDs usados. Esto es lo que sucede en newGame().

El programa va a simonSays() donde los LEDs correspondientes a los números aleatorios generados parpadean en secuencia. Esperamos 1000 milisegundos y esperamos a las entradas en getInputs(). Comprobamos tantas entradas como veces en turns. Cada vez que una entrada es detectada, comprobamos si esta corresponde al mismo número aleatorio generado previamente. Si no lo es, saltamos a gameOver() donde el juego se resetea. Si es correcto, seguimos comprobando las entradas restantes.

Cuando comprobamos tantas entradas como veces en turns sin obtener ningún error, vamos a levelUp(). La variable turns se incrementa en uno y suena un sonido de victoria antes de volver a empezar el juego.

¿No funciona?

  1. Revisa las ilustraciones y comprueba tus conexiones. Asegúrate de que el shield y los cables están firmemente conectados.
  2. ¿El botón no funciona? Mira la referencia para depurar el botón.
  3. ¿El VU–meter no funciona correctamente? Mira la referencia para depurar el VU-meter.

¡Sigue experimentando!

  • Haz el juego más desafiante haciendo que vaya más rápido.
  • Hazlo un juego de dos jugadores. Graba la secuencia del primer jugador y deja que el segundo la repita.