Afegim vides

En aquest apartat veurem com podem fer per tenir vàries oportunitats per superar el joc.




Més concretament es pretén donar resposta a les preguntes següents:


  • Com podem controlar les vides disponibles?
  • Quina utilitat pot tenir tenir una iteració dins d'una altra?


Ara volem tenir el que usualment s'anomenen vides. No acabar el joc de seguida que ens passa la pilota de la raqueta, sinó permetre unes quantes equivocacions.


Això ho farem amb una altra variable. Amb aquesta variable podrem emmagatzemar el nombre de vides inicial i anar restant una vida cada cop que ens equivoquem fins que ens en quedem sense. Així doncs, creem una nova variable que li direm vides.


Fixem-nos que ara 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 assigna a vides el valor 3.



Ara la idea és que allò que fèiem una sola vegada, ho hem de repetir tantes vegades com vides tinguem. Per tant, farem 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…, que serà quan la variable vides sigui zero.


I aquest és el programa resultant. Ara l'hauríem de provar:



Tots els que l'hem provat hem vist que NO funciona correctament. Hauríem de trobar què està malament abans de continuar llegint!


Hi ha diversos errors:

  • La variable vides no canvia mai. Això és absurd! Si tenim una repetició que depèn del valor d'una variable, aquest valor ha d'anar canviant dins de la iteració, en cas contrari serà impossible que la condició d'acabament del repetir fins… s'acompleixi mai!
  • La inicialització del moviment de la pilota ha d'executar-se cada cop que comencem el joc. Així doncs la hem de moure de lloc.


Aquesta figura il·lustra les modificacions:



Cal que ens fixem en el detall que tenim un repeteix dins d'un altre repeteix. Aquesta funcionalitat ens dóna una gran potència, pensem-hi.


Aquest és, essencialment, el nostre Pong! Repassem-lo:

  1. Tenim tres personatges. D'aquests tres personatges n'hi ha dos, la pilota i la raqueta, que tenen associat un programa que governa el seu comportament. L'altre, la barra llarga, és passiu i l'únic paper que juga és el de ser detectat.
  2. El gruix de la lògica del programa està a pilota, és el personatge actiu que més decisions ha de prendre.
  3. El programa de la pilota es composa de:
    1. Inicialització de variables (vides i velocitat). Fixem-nos que vides va variant mentre el programa s'executa. En canvi, el valor de velocitat el fixem al principi i ja no es toca més.
    2. 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 voltes (el valor inicial de la variable vides), el bucle s'acabarà.
    3. Dins d'aquesta iteració tenim la inicialització de la partida, de manera que col·loquem la pilota a la seva posició de començament del joc
    4. També hi ha un altre bucle que, bàsicament, mou la pilota a la velocitat que marca la variable velocitat. També vigila si la pilota toca la raqueta o una vora. Quan toca una vora, la pilota rebota automàticament gràcies a la instrucció corresponent, mentre que si toca la raqueta és el programa qui calcula com ha de ser el rebot.