Simó diu

Posa a prova la teva memòria amb aquest joc!

Els LEDs parpellejaran seguint una seqüència que hauràs de recordar i repetir. Si ho vas fent correctament, el joc esdevindrà cada vegada més desafiant.

Materials

  • 1 placa Arduino
  • 1 Shield Bàsica Educativa
  • 1 botó Tinkerkit
  • 1 cable Tinkerkit
  • 1 potenciòmetre
  • 1 piezo
  • 5 LEDs
  • 5 resistències de 220 ohm
  • 1 breadboard
  • 7 cables negres
  • 8 cables de colors

 

Instruccions

  1. Connecta la Shield sobre la placa Arduino.
  2. Connecta cinc LEDs a través del pont breadboard.
  3. Connecta una resistència de 220 ohm al Pin digital 2. Connecta-la a la pota llarga del primer LED.
  4. Connecta els Pins digitals 3 a 6 al LED corresponents seguint el mateix mètode.
  5. Connecta la pota curta dels LEDs a un Pin GND de l’Arduino utilitzant els cables negres.
  6. Connecta el potenciòmetre a la breadboard de la shield. Connecta el Pin del mig del potenciòmetre a A0, el Pin de l’esquerra a GND i el de la dreta a 5V.
  7. Connecta el piezo a GND i al Pin digital 8.
  8. Connecta el botó TinkerKit a D9.
  9. Connecta el muntatge Arduino a l’ordinador, puja l’exemple SimonSays i prova el joc.

Codi

Pots trobar el codi a “Arxiu -> Exemples -> Esports -> SimonSays

Com funciona

El joc comença generant tants punts aleatoris com els que es corresponen al valor de la variable turns. Aquests números poden anar de 0 fins al número de LEDs usats. Això és el que succeeix a newGame().

El programa va a simonSays(), on els LEDs corresponents als números aleatoris generats parpellegen en seqüència. Esperem 1000 milisegons i llavors comença a esperar les entrades a getInputs(). Comprovem les entrades tantes vegades com figura a turns. Cada cop que una entrada és detectada, comprovem si correspon al mateix número aleatori generat prèviament. Si no ho és, saltem a gameOver(), on el joc comença de nou. Si és correcte, seguim confirmant les entrades restants.

Quan comprovem les entrades tantes vegades com figura a turns sense obtenir cap error, anem a levelUp(). La variable turns s’incrementa en 1 i sentim un so de victòria abans de tornar a començar el joc.

No funciona?

  1. Revisa les il·lustracions i comprova les teves connexions. Assegura’t que la Shield i els cables estan fortament connectats.
  2. El botó no funciona? Mira la referència per depurar el botó.
  3. El VU–meter no funciona correctament? Mira la refèrencia per depurar el VU-meter.

Continua experimentant!

  • Augmenta el repte fent que el joc vagi més ràpid.
  • Converteix-lo en un joc per a dos jugadors. Grava la seqüència del primer jugador i deixa que el segon la repeteixi.