Programació: Còpia de personatges o clons

Definició
Clonar un objecte o personatge vol dir fer-ne una còpia. En programació és molt útil la clonació ja
que així ens preocupem només de crear i programar el primer objecte: com es mourà, com respondrà a diversos esdeveniments o sensors... Si necessitem més còpies del personatge el clonem, i cada còpia conservarà les característiques programades per l'objecte original. És una forma senzilla de reutilitzar codi.

Si volem que els clons apareguin en diferents llocs o que es moguin o actuïn de forma diversa, ho podem programar amb l'atzar, o bé podem seqüenciar-los amb una variable que els faci actuar en funció del seu número.

Com treballar la còpia de personatges amb Scratch? 
En treballar amb còpies seguim normalment un mateix patró:
  1. Creen la còpia del personatge
  2. Programem què ha de fer cada una de les còpies
  3. Esborrem la còpia
Per crear els clons utilitzem el bloc crea una còpia de jo mateix. Podem posar el bloc dins d'un repeteix, si volem un número determinat de clons, o bé dins d'un per sempre, si volem que vagi fent les còpies contínuament. La còpia apareix a la mateixa posició que el personatge original, i desapareix quan aturem l'execució del programa.


Per definir què ha de fer cada còpia utilitzem el bloc quan una còpia meva comenci. Sota seu enganxarem els bloc amb el programa que volem que realitzi cada clon. Segueixen les mateixes normes que la resta de personatges d'Scratch: responen als mateixos esdeveniments i accions que l'original.


Un cop acabada la feina a fer, si hem de fer desaparèixer el clon, el millor és suprimir-lo. Ho farem amb el bloc esborra aquesta còpia. Això és així per què Scratch té un límit de 300 clons funcionat alhora, per tal de no esgotar els recursos de l'ordinador.


Els clons o còpies apareixen a la versió 2.0 d'Scratch. Fins a les hores, si volíem fer sortir diversos personatges idèntics no teníem més remei que duplicar el personatge un cop programat.

Exemples
En el primer exemple, cada cop que premem la tecla espai es crearà un clon. Quan hagi estat crear, es situarà en un lloc a l'atzar, i canviarà la mida i el color.


En el segon exemple els clons es creen en fer clic al personatge. Un cop creats, els clons es desplaçaran fins a tocar la vora, moment en que el personatge copiat desapareix. Aquest exemple demostra que els clons conserven totes les característiques del personatge original: si cliqueu un dels clons, a la seva vegada es clonarà.


Aquest altre exemple demostra la limitació dels 300 clons. El programa de la esquerra crea un clon, que va dient el seu número. En arribar a 300, la copia s'atura (en realitat, arriba fins a 301; l'original no compta com a clon).  En canvi, en el de la dreta, els clons poden ser infinits, ja què, un cop han fet la feina, els suprimim.


En aquest últim exemple, controlarem la posició de cada una de les còpies amb una variable. Després utilitzem la seva posició per tal que en clicar el clon ens digui el seu número; cada clon, per tant, actua de forma diferent. (En el projecte Caixa de ritmes, teniu aquest exemple portat a l'extrem, amb llistes en comptes de variables).


Molts dels jocs de CrearJocs utilitzen clons: Pillar cuques, Flappy Birds, Invasió d'Asteroides... Pots analitzar-los per veure diferents formes d'utilitzar les còpies.