Sessió 4. Quan s’acaba el pong?

Pla de treball

  • Control del final del joc
  • El concepte variable
  • Les vides en el joc

No sempre encertem amb la raqueta

Quan juguem al pong i desplacem la raqueta, pot ser que no encertem a tocar la pilota. Hem d’aconseguir controlar quan passa això per saber que el joc s’ha acabat i, com veurem després, decidir si podem continuar o no.

Icona tasquesFem-ho pas a pas

  • Entrem al nostre compte de l’Scratch i fem una còpia del nostre projecte m2repte31 i li canviem el nom a m2repte41
  • En aquest projecte segurament tenim dues raquetes, una vertical i una horitzontal. Eliminem la vertical i ens quedem només amb la raqueta horitzontal
  • Afegirem a la part de baix de la pantalla la “línia de la mort”. Quan la pilota toqui aquesta línia el joc s’acabarà
  • Farem servir els Sensors per detectar quan hi ha aquesta interacció entre la pilota i la “línia de la mort”. Per poder-ho fer, primer de tot hem de crear un nou personatge que serà precisament aquesta línia i que ha de ser de la mateixa longitud que l’amplada de la pantalla i del gruix i color que més ens agradi. Hem d’aconseguir aquest resultat
  • Línia de la mort

  • Ara només cal fer la interacció entre la pilota i la línia de mort. Podem fer-ho de diferents formes, fent servir els condicionals o amb una estructura iterativa (les dues possibilitats les vam veure al mòdul 1 a la sessió 9). Tant si fem servir una possibilitat com l’altra, haurem d’afegir els sensors que controlin la interacció de la pilota amb la “línia de la mort”, considerant-la com a personatge o bé tenint en compte el seu color
    Condicional
    Iteració

Icona repte Repte 1

El joc s’acaba també quan la pilota es troba a una alçada menor que la raqueta, encara que no arribi a tocar la “línia de la mort”, ja que no hi ha possibilitat de reaccionar i recuperar-la. Modifiquem el projecte m2repte41 que tenim obert de forma que el joc s’acabi quan la pilota estigui més a baix de la raqueta.

Icona pista Pista: hem de comprovar si la coordenada “y” (posició vertical) de la pilota és menor que la coordenada “y” de la raqueta.


Volem jugar més d’una vegada…

Que el pong s’acabi en el moment en que no podem retornar la pilota, no és divertit. Hem de tenir més oportunitats per continuar jugant una estona més i així anirem sent més hàbils. Per aconseguir-ho, afegirem “vides” en el nostre joc.

Aquestes “vides” han d’anar disminuint cada vegada que perdem, és a dir, anirà variant el seu valor. Això vol dir que si comencem el joc amb 4 vides i perdem, ens quedarem només en tres i així successivament. Per poder controlar la variació d’aquest valor, hem de fer servir un nou concepte, el de variable que es troba dins del bloc de Dades.

Bloc dades

Icona tasquesFem-ho pas a pas

  • Seguim treballant en el nostre projecte m2repte41
  • Anem al bloc de dades i creem una variable amb el nom de vides (o qualsevol altre nom que vulguem, tot i que és recomanable posar noms que tinguin relació amb el que volem que guardi per tal que el programa sigui més clar de seguir).
  • Un cop hem creat una variable, el bloc ofereix les possibilitats següents:
    Creació variable
  • Un cop creada la variable hem de donar-li un valor inicial que serà la quantitat d’oportunitats que tenim de perdre abans de què s’acabi el joc.
  • Per tal que cada vegada que comencem el joc la variable “vides” parteixi del valor inicial que hem decidit, hem de col·locar el bloc corresponent a l’assignació just després de la bandera verda.
    Creació variable
  • El valor de la variable apareix a la pantalla si la hem marcat al definir-la. Podem canviar la forma de visualitzar-la quan estem executant el projecte clicant a sobre.

Icona repte Repte 2

Afegim en el nostre projecte m2repte41 el control de vides, de forma que vagin disminuint cada cop que la pilota no reboti a la raqueta. No controlarem ara el final del joc quan s’acabin les vides, ho farem en la següent sessió.

Icona pista Pista: un cop creada la variable “vides” i que hem establert el seu valor inicial, s’ha d’anar restant una vida cada cop que perdem. A l’Scratch no existeix l’operació de resta, podem fer-ho igualment sumant un nombre negatiu (-1). Haurem de fer servir una iteració per anar repetint l’acció.


Icona projecte El nostre projecte creix…

És el moment de revisar la descripció que hem fet al nostre projecte pinball tenint en compte que ens cal decidir i afegir el concepte de “vides”. Quantes oportunitats volem donar als jugadors? Què volem que passi quan s’acaben les vides?


Icona glosari Com que som programadors i programadores parlem de…

  • Variable: són espais on podem guardar valors que s’aniran modificant (variant) al llarg del programa, és a dir, que no tenen un valor fix.