En aquest mòdul utilitzarem els coneixements que vam adquirir en el mòdul anterior per fer un programa una mica més interessant que els programets d'exemple que hem vist fins ara. En particular implementarem el joc del Pong. Si voleu veure el resultat final, és a dir, allò que aprendrem a fer, podeu descarregar el Pong complet del lloc web d'Scratch.

Comencem...

El primer que farem és partir de zero, és a dir, triarem l'opció 'Nou' del menú 'Fitxer'. Ara tenim el gatet a l'escenari i el traurem. Ja sabeu com fer-ho: agafem les tisores i eliminem el gatet. La idea és quedar-nos sense res!

Ara obrim l'eina de dibuix per dibuixar una rodona.

És molt senzill. Triem la rodona per dibuixar, intentem fer una rodona ni massa gran ni massa petita (ni massa poc rodona) i la pintem amb el cubell . Fem clic a D'acord i ja està. Ara tenim un personatge nou amb el que podem fer coses.

Què podem fer? Per començar podem fer-la rebotar en prémer la bandereta verda. Ja sabem com fer-ho, oi? Ja coneixem les instruccions 'mou-te','rebota al tocar una vora', l'estructura iterativa 'per sempre' i la instrucció que detecta si hem premut la bandera verda per començar. Combinant tot això podem fer el programet senzill

És molt entretingut? Doncs no, perquè sempre comença des d'allà on estigui la pilota i en la mateixa direcció, per tant sempre farà el mateix camí amb els mateixos rebots. No gaire espectacular.

Amb el que vam aprendre al mòdul anterior podem millorar-ho bastant. Per exemple, podríem posar la pilota en un punt de partida determinat i amb una direcció inicial aleatòria (és a dir, triada a l'atzar). Recordeu la instrucció 'vés a'? Doncs la podem combinar amb 'apunta en direcció' (a la categoria 'Moviment') per aconseguir precisament això que volem:

Fixem-nos que hem utilitzat l'expressió 'nombre a l'atzar entre' amb -60 i 60 com a arguments. Això ens triarà un nombre entre -60 i 60 (n'hi ha 121 de possibles) a l'atzar per decidir en quina direcció es mourà inicialment la pilota. I ara, si més no, es mou en diferents direccions cada vegada que premem la bandera verda.

Variables

Aprofitarem aquest programa per explicar un concepte molt important en programació i que no ha aparegut encara en aquest curs. És el concepte de Variable.

Pitgem la categoria 'Dades' i ens trobarem (si encara no en tenim cap de variable) dos botons. Fem clic a 'Nova variable' i ens demanarà quin nom volem posar-li a la variable. Escrivim 'velocitat', fem D'acord i ens apareixeran noves instruccions, com podem veure a continuació:

Però, què és una variable? Imagineu una variable com una capseta on guardem un valor (qualsevol valor). Sovint, en els programes que farem començant per aquest, ens caldrà guardar valors i anar-los canviant a mida que el programa s'executa. El lloc on guardem aquests valors és allò que anomenarem variable. En el nostre cas, tenim una capseta anomenada 'velocitat' on guardarem un número que indicarà la velocitat amb la que es mou la piloteta.

Fixem-nos en la casella de selecció al costat de l'expressió numèrica (fixem-nos en els contorns arrodonits) anomenada 'velocitat' , que ara està marcada. Això farà que el valor de la variable sigui visible a l'escenari

Si fem clic a sobre de la casella, es desmarca i desapareix de l'escenari. Així podem, si ens interessa, veure el valor que té la variable mentre el programa s'executa. També podem fer que la variable es mostri o s'amagui a l'escenari des del mateix programa, amb les instruccions

Una variable, donat que conté un valor, és en ella mateixa una expressió numèrica (com ho pot ser un sol nombre). El resultat de l'expressió 'velocitat' és el valor guardat a la capseta 'velocitat'. Naturalment pot formar part d'altres expressions, com qualsevol altra expressió numèrica.

Tenim dues instruccions més que tenen a veure amb les variables: 'assigna' i 'augmenta'. La primera, 'assigna a variable el valor expressió numèrica' posa el valor corresponent a l'expressió numèrica dins de la capseta amb el nom de la variable.

En aquest cas, la variable 'velocitat' pren per valor el número 0.

L'altra instrucció, 'augmenta variable en expressió numèrica' el que fa és canviar el valor de la variable sumant-li el resultat de l'expressió numèrica. Així, si executem la instrucció 'augmenta velocitat en 1' no podem saber a priori quin serà el nou valor de 'velocitat', ja que dependrà del valor que tenia abans d'executar la instrucció.

Si abans d'executar la instrucció 'augmenta velocitat en 1' la variable 'velocitat' tenia per valor 2, després d'executar-la el valor de 'velocitat' serà 3, en canvi, si abans d'executar aquesta instrucció la variable 'velocitat' valia 15, després d'executar-la el valor serà 16. Ara bé, si la instrucció és 'augmenta velocitat en -3' i 'velocitat' valia 32 abans d'executar-la, després el valor de 'velocitat' serà 29.

Seguim...

Ara que tenim la variable 'velocitat' com a petit magatzem d'un nombre, podem aprofitar per fer que el nostre programa sigui una mica més divertit. Introduirem la variable 'velocitat' en el programa per accelerar la piloteta a mida que aquest s'executa. Això requerirà tres afegits:

  • Utilitzarem la variable per indicar la velocitat de la pilota. Ara per ara, la velocitat de la pilota és "10 passos per iteració", és a dir, la pilota avança 10 passos cada cop que s'executa 'mou-te 10 passos'. Ara farem que aquest número de passos depengui del valor de la variable 'velocitat', arrossegant la variable 'velocitat' i posant-la al lloc que indica el nombre de passos a moure

  • Inicialitzarem la variable. Farem 'assigna a velocitat el valor 0' abans de començar la iteració. És molt important que les variables tinguin un valor abans d'utilitzar-les per primera vegada. No inicialitzar variables és un dels errors més típics en un programa.
  • A cada volta de la repetició afegirem 1 a la velocitat, de manera que la piloteta anirà més de pressa a cada volta de la iteració.

Així, el programa modificat és

Aquest programa admet moltes variacions amb les que podeu passar una estona entretinguts. Penseu-ne vosaltres alguna.