El Pong (III)
Ara volem tenir el que usualment s'anomenen "vides". No acabar el joc de seguida que ens passa la pilota de la barra petita, sinó permetre unes quantes equivocacions.
Això ho farem amb una altra d'aquelles capsetes que en dèiem variables. Amb una variable podrem emmagatzemar el nombre de vides inicial i anar restant una vida cada cop que ens equivoquem.
Així doncs, creem una nova variable (categoria 'Variables', botó 'Nova variable')
Fixem-nos que tenim disponibles les mateixes instruccions sobre la variable 'velocitat' i sobre la variable 'vides'.
Per saber a quina variable es refereix cada instrucció, cal triar-la del menú desplegable. Per exemple, si volem inicialitzar les 'vides' al valor 3, utilitzarem 'fixar…' amb la variable 'vides'
Ara la idea és que allò que fèiem una sola vegada, ho hem de repetir tantes vegades com 'vides' tinguem. Per tant, proposarem el següent:
- Separar el 'repetir fins…' que ja tenim, i afegir-ne un altre que l'englobi, és a dir, que el repetir que ja teníem estigui dins del nou 'repetir fins…'
- Crear l'expressió lògica que determina el final del nou 'repetir fins…'. Aquesta denotarà que el valor de la variable 'vides' sigui zero.
I així hem creat aquest programa. Proveu-lo si us plau.
Esperem que hagueu pensat força i hagueu trobat vosaltres mateixos els errors. N'hi ha diversos:
- Primer, la variable 'vides' no canvia mai. Això és absurd! Si tenim una repetició que depèn del valor d'una variable, el valor d'aquesta ha de canviar dins de la repetició, en altre cas serà impossible que la condició d'acabament del 'repetir fins…' es satisfés mai!
- Segon, les inicialitzacions han d'executar-se cada cop que comencem el joc amb vida nova, així doncs les hem de moure de lloc.
Aquesta figura il·lustra les modificacions
El programa queda finalment així, amb el programa de la pilota i el programa de la barra curta:
Aquest és, essencialment, el nostre Pong!
Repassem-ho:
- Tenim tres objectes i un fons. Dels tres objectes, dos, la pilota i la barra curta, tenen associat un programa que governa el seu comportament. Un altre, la barra llarga, és passiu i l'únic paper que juga és el de ser detectat.
- El gruix del programa està a la lògica de la pilota. És la pilota l'objecte actiu que més decisions ha de prendre.
- El programa de la pilota es composa de:
- Inicialització de variables ('vides' i 'velocitat'). Fixem-nos que 'vides' és modificada mentre el programa s'executa. En canvi, el valor de 'velocitat' es fixa al principi i ja no es toca més.
- Una iteració o repetició (de vegades parlem també de "bucle") que controla quantes vides ens queden. A cada volta d'aquest bucle, decrementem el valor de 'vides', assegurant-nos que, desprès d'un cert nombre de vides (el valor inicial de la variable 'vides'), el bucle s'acabarà.
- Dins de la repetició mencionada al punt anterior, tenim una inicialització de partida, col·locant la pilota a la seva posició de començament del joc
- I també un altre bucle, que essencialment mou la pilota a la velocitat que marca la variables 'velocitat', i vigila si toquem la barra curta o una vora. Si toquem la barra curta rebotem calculant nosaltres el rebot, i si toca la vora rebota gràcies a la instrucció corresponent.
I això és tot.