Programació: repeticions (Iteracions)

Definició
Les repeticions (o iteracions en altres llenguatges de programació) són molt comuns en els jocs i altres programes:
  • El personatge del joc fan una sèrie d'accions contínuament.
  • Cada 10 segons canviem l'escenari.
  • Un comptador de temps resta 1 cada segon.
Però, en el cas d'Scratch, moltes vegades també controlem l'estat de sensors o variables dins de blocs de repetició:
  • Controlem que el temps arribi a 0 per dir que el joc s'ha acabat.
  • Esperem que l'usuari premi una tecla
  • Si un personatge toca un altre, guanya un punt 

Com creem repeticions amb Scratch?
Per crear repeticions amb Scratch utilitzem bàsicament 2 blocs:


Dins del bloc posarem ordenades les accions que volem que es repeteixin. En el cas del bloc repeteix__vegades, les accions es repetiran el nombre indicat de vegades i després continuarà executant els següents blocs. En el cas del bloc per sempre, es repetiran indefinidament fins que no ho aturem.


Exemples

En el primer exemple, farem que el gat es mogui  4 vegades a dreta i esquerra i que indiqui la seva posició. Després, miolarà i dirà "Estic cansat!!!". Fixeu-vos que afegim els blocs que volem que el personatge faci després de la repetició enganxats a sota del bloc, ja que els blocs s'executen de dalt a baix.


Aprofitant que els polígons regulars tenen costats i angles iguals, amb el bloc repeteix podem dibuixar-ne qualsevol d'ells. Per fer ho hem de dibuixar repetidament un costat i girar un cert angle (360 dividit pel nombre de costats). Aquí ens un hexàgon, però segur que pots fer un octògon, un triangle...


Aquest altre és l'exemple típic per fer que un personatge sembli camini o voli. Tenim diversos vestits i els anem canviant contínuament dins un bloc repeteix. Com que volem una repetició contínua, fem servir el bloc per sempre.



Ara farem servir un bloc especial, repeteix fins <__>, que indica que els blocs s'aniran repetint fins que la condició indicada sigui certa. Després s'executaran els blocs següents. És una bona forma de crear un marcador de temps!


Un altre ús habitual del per sempre és el control de les tecles en un joc. El definim dins d'un per sempre amb un bloc condicional associat, perquè és necessari estar contínuament a l'aguait de l'estat de les tecles. Aquí teniu la definició d'un personatge que es mou a dreta i esquerra; primer el situel, i llavors, contínuament esperem a que la tecla sigui premuda per a realitzar l'acció.