PONG
Adaptació a Snap4Arduino del projecte pong publicat a Classe de Tecnologies Creatives (CTC) : Pong
És una versió simplificada del clàssic joc d'arcade Pong.
En aquest joc, un “pong” es mourà a través de cinc leds. A mesura que els jugadors vagin prement el botó, rebotarà d’una banda a l’altra. Els jugadors han de prémer el botó en el moment precís amb l’objectiu de retornar el pong.
El projecte amb Snap4Arduino permet combinar la simulació amb el muntatge real. Es pot veure en el següent vídeo com es pot jugar tant amb els botons físics com amb els simulats:
Material
- 1 placa Arduino
- 1 Arduino Educational Shield
- 2 botons Tinkerkit
- 2 cables Tinkerkit
- 5 LEDs
- 5 resistències de 220 ohm
- 5 cables negres
- 5 cables de colors
Muntatge
Aquest muntatge també es pot fer sense la placa Arduino Educational Shield.
Com funciona?
El joc comença amb una intermitència (blink) dels cinc leds i després s'indica el sentit del desplaçament inicial parpellejant el led del costat cap a on es desplaçarà el "pong". El sentit del desplaçament inicial es determina aleatòriament a l'inici de cada partida. Quan l’últim led s’apaga, el botó del costat corresponent ha de ser premut dins el temps establert. Si es fa, el "pong" es desplaçarà de nou cap a l'altra banda. Una altra vegada, quan l’últim s'apaga, cal prémer el botó corresponent dins el temps màxim de pulsació. Si es fa així el procés s'inverteix i el joc continua. Quan un dels jugadors triga més del permès a prémer al botó el joc finalitza (gameOver). En aquest cas, tots els leds parpellejaran i una intermitència final d'un sol led indicarà el costat guanyador.
Una proposta del pong amb Snap4Arduino
Quan es treballa amb Snap4Arduino es poden combinar el món real i el virtual. En aquest exemple s'ha optat per virtualitzar el muntatge de manera que es pugui jugar encara que no es disposi de la placa Arduino.
L'escenari
Reprodueix els elements actius del muntatge i el seu comportament. Conté tres elements sobre els quals es pot interactuar:
- Dos botons (button1 i button2): responen als clics del ratolí i a la pressió sobre els botons reals. Si es programa, també poden respondre a pulsacions de tecles. El joc es pot realitzar indistintament amb els dos tipus de botons.
- La targeta (board): permet indicar si el projecte s'executa amb una placa connectada
o no
.
L'escenari també conté cinc leds per completar la simulació del joc.
El programa
A la imatge es pot veure la seqüència principal del programa:
-
- Inicialització de variables (gameOver, pressTime, speed) i indicació dels pins de connexió dels leds i els botons (llista ledPins, button1, button2).
- Efectes visuals d'inici de partida.
- Determinació aleatòria del desplaçament inicial del "pong".
- Indicació lluminosa del sentit inicial.
- Bucle principal controlat per la variable
que s'inicialitza amb el valor fals
en el bloc d'inicialització:
- Comprovació del temps de reacció
. Aquest és un bloc de tipus "reporter". El seu valor serà cert o fals en funció de la resposta del jugador. Si reacciona a temps s'invertirà el sentit del desplaçament del "pong"
i el joc continua. \\En cas contrari, s'estableix
a cert. Això provoca la sortida del bucle.
Fitxer del projecte pong per Snap4Arduino
Per continuar experimentant...
- Fer que el joc no s'acabi quan un dels jugadors no respon dins del temps màxim permès.
- Fer que el joc acabi després d'un nombre determinat d'errades d'algun dels dos jugadors.
- Incorporar un comptador de punts guanyats per a cada participant i mostrar-ho a l'escenari.
- Incrementar progressivament la velocitat de desplaçament del "pong".
- Fer que el temps màxim de resposta permès es redueixi progressivament al llarg de la partida.
- Introduir nous efectes lluminosos per indicar inici, final i guanyador de partida.