Simon

El Simon és un joc de memòria visual i auditiva, en el que el jugador ha de repetir una seqüència aleatòria que es mostra cada cop més ràpid. En el nostre cas, farem una variant força musical, treballant amb notes i tempo. No és un joc massa complicat de programar, però és convenient haver treballat abans la lògica de la programació per objectes, les llistes, els condicionals i l'enviament de missatges en projectes previs.

El joc

Veure Simon a la web d'scratch

Com es fa?


Què necessites?

A banda de altres elements comuns de programació, necessitarem:
  • Els 4 botons. Cada un d'ells reaccionarà tant al missatge enviat per la seqüència com a l'esdeveniment de ser premut per l'usuari.
  • Una llista que serà la seqüència a repetir. Aquesta llista la anirem omplint amb elements a l'atzar (de 1 al 4) que representaran els botons a l'usuari ha de prémer. També haurem d'anar comprovant la llargada de la llista, per saber quan hem d'afegir nous elements.
  • Una variable que ens faci d'índex, que indicarà amb quin element de la llista estem treballant en aquell moment.



L'enviament de missatges té aquí un ús especial, ja que no enviem missatges fixes, si no l'element corresponent de la llista, indicat per l'índex.

Què més puc fer?

  • Pots augmentar la quantitat de botons a 5 o 6.
  • Pots variar els intervals musicals o les notes per formar una altre arpegi (major, menor, disminuït...) dels botons.
  • Afegeix una presentació al joc.
  • Afegeix un marcador que indiqui el nivell en el que estem (atenció... no és l'índex!).
  • Fes una versió amb sons d'animals, de diferents instruments musicals, etc...
  • Fes una versió per repassar els colors en anglès o en francès.
  • Fes una versió per a MakeyMakey o per a Arduino Esplora o altre controlador arduino.


Un cop hagis acabat el joc, no t'oblidis de compartir-lo i afegir-lo a l'estudi de Simon. Allà pots veure altres exemples, agafar idees i comentar-los.






El Drac atrapa a Sant Jordi

Ara que s'acosta Sant Jordi és un bon moment per dedicar una sessió a programar algun petit joc, aprofitant que a la galeria de personatges de l'Scratch n'hi ha alguns de ben xulos. En concret, aquest joc l'hem programat amb els alumnes de 2n de primària de l'escola.

El Joc


Com es fa?


Per tal que els sigui fàcil als alumnes replicar el programa inicial, hem deixat al projector la següent imatge, explicant que cada bloc ha d'anar a seu personatge corresponent.



Què més puc fer?

Un cop aconseguit el joc base, deixeu que ells mateixos experimentin: duplicar el drac, fer canvis al personatge quan sigui atrapat, afegir altre personatges al joc, afegir algun efecte de so o una música de fons...


Notes metodològiques

La principal dificultat que ens hem trobat en programar el joc és que els nens i les nenes entenguin que cada personatge té el seu programa diferent, ja que és el primer joc amb més d'un objecte que realitzem. Han d'entendre que  cada objecte obeeix al seu propi programa per separat. I això, tot i què pugui semblar evident, no és fàcil, ja que per ells el joc és un!

Nosaltres hem realitzat el joc amb alumnes de 2n, que ja han fet alguna que altra activitat amb Scratch. L'hem programat en una sessió d'una hora, en parelles, i ha estat tot un èxit!

L'heu provat? Com ha anat? Vinga, deixa el teu comentari!

La peixera

Els alumnes de 1r de l'escola tenen una peixera a classe. Ara faran la seva pròpia peixera amb Scratch. Es una bona forma d'introduir la programació a l'aula dels més petits, ja que fons i personatges són de la galeria d'Scratch, i la programació és ben senzilla. Així podem treballar dimensions, vestits i programació dels primers personatges.

L'animació



Com es fa?


Us deixo aquí el programa per a un peix. Tot i que es pot duplicar i canviar després el vestit, jo us aconsello que això no ho expliqueu encara als alumnes, i deixeu que treballin directament amb els blocs, per anar adquirint pràctica amb aquest procés.


A l'escola, creem tots junts el programa del primer peix al projector i després deixem que vagin experimentant.

Què més puc fer?

  • Afegeix un so a la peixera, per exemple Bubbles.

  • Fes que algun peix vagi canviant de color, amb el bloc augmenta l'efecte color.
  • Dibuixa el teu propi peix, una sirena, un cavallet de mar...


Programació: Llistes

Definició


Les llistes són contenidors de diferents elements d'informació. Aquests elements estan indexats, que vol dir que tenen associat un nombre d'ordre segons la posició que ocupen a la llista. Per tant, podrem referir-nos a ells per l'ordre que ocupen: el tercer element de la llista dies de la setmana és dimecres. Per tant, ens podem imaginar una llista com un àlbum de cromos, on podem accedir a cada cromo pel seu número; tot i això, a diferència dels àlbums, podem canviar cada cromo de posició, eliminar-lo de la llista, afegir-ne de nous...

Altres llenguatges de programació presenten estructures semblants a llistes: arrays, vectors, matrius... tot i que segons el llenguatge, pot haver-hi forces diferències d'un concepte a l'altre.

Com crear llistes a Scratch

Per crear una llista anem als blocs de dades i cliquem el botó Crea una llista. Com en el cas de les variables, haurem d'especificar el nom de la llista, i si és local o global. Un cop creada la llista, apareixeran els blocs que ens permet gestionar-la.

Per defecte, veurem la llista a l'escenari. Com fèiem amb les variables, podem amagar-la o no, clicant la casella de selecció de davant del nom de la llista. Un cop creada, la llista apareix buida, però podem omplir-la directament al seu monitor, clicant el signe +  i escrivint els diferents elements. També els podem eliminar directament clicant l'element i la creu que apareix al seu costat. 

Com gestionar llistes a Scratch

Les llistes, al igual que les variables, quedaran en l'estat en que estiguin en el moment de desar el programa. En alguns casos, això ja ens està bé, però en alguna ocasió ens pot interessar que el mateix programa canviï, afegeixi o suprimeixi elements. Per això tenim els diferents blocs de gestió de llistes, que ens permetrà crear-les al mateix programa, de forma que ens assegurem sempre de la integritat de les dades.


Veieu que podem afegir, eliminar o canviar qualsevol element de la llista (el primer, el darrer o qualsevol triat a l'atzar). També podem localitzar un element de la llista segons el seu índex, o bé, obtenir la llargada de la llista. Tots aquests blocs ens ajuden a modificar la llista segons ens convingui per a la creació del nostre programa.

Podem també importar i exportar el contingut de les llistes a fitxers de text pla, simplement clicant la llista amb el botó de la dreta en l'entorn de creació.

Exemples

Exemple 1
Crea una llista amb diferents salutacions. Fixa't en l'exemple: 


El següent programa et saludarà cada cop amb una de les frases de la llista triada a l'atzar. 



Exemple 2
Crea dues llistes: la llista mes amb els mesos de l'any (gener, febrer, març...) i la llista dia de la setmana (diumenge, dilluns, dimarts...). Prova el següent programa, que et dirà en quin mes i en quin dia som. Fixa't que fem servir el sensor (mes) actual, que ens torna un nombre, com a índex del valor a cercar en la llista.




Exemple 3
Amb les llistes es poden crear fàcilment jocs de preguntes/respostes. Crea una llista de Comarques i una de les seves capitals. Vigila que estiguin correctament ordenades! També hauràs de crear una variable que ens indicarà quina pregunta estem fent.


El joc ens preguntarà per una comarca de la llista (un nombre triat a l'atzar entre 1 i la llargada de la llista). Si el nom escrit correspon a l'element amb el mateix nombre de la llista de capitals, haurem encertat.


Exemple 4
Al joc Endevina la bandera juguem amb una llista ordenada segons les disfresses del personatge. 
Ens pregunta per una bandera i si s'encerta, l'afegim a una llista de control per evitar repetir la pregunta. 

Ous de Pasqua - Easter Eggs

Com que s'acosta la Pasqua, us proposo crear un joc amb els vostres alumnes més petits. A l'escola l'hem fet els alumnes de segon i tercer de primària en una sessió d'una hora, i han xalat. Pot ser un bon recurs per iniciar-se en l'editor de dibuixos.

  1. Ves a l'enllaç del Joc de Pasqua.
  1. Clica a la pestanya Vestits i amb el pot de pintura, pinta l'ou i el pollet. Si t'equivoques en pintar, fes clic a la fletxa de Desfés.

  1. Ara fes clic a la pestanya Programes. Introdueix el següent programa i comprova que funcioni. En prémer la Bandereta verda, l'ou s'ha de moure d'un costat a l'altre.
  1. Ara introdueix aquest altre programa. En clicar l'ou, ha aparèixer el pollet.
  1. Personalitza el joc:
    • Fes que l’ou vagi més ràpid
    • Canvia el so
    • Fes que digui una altra cosa
    • Pels experts… duplica l’ou, afegeix un marcador, música de fons, altres figures de pasqua...
Aquí teniu el joc en funcionament...



Bona Pasqua!!!

El carnaval arriba a Scratch

Aprofitant que som a Carnaval, us comparteixo un joc de disfresses. La gràcia del joc és que, si activeu la WebCam us podreu disfressar a vosaltres mateixos: us podreu posar ulleres, barrets, ulleres, barbes, perruques...


Veure el joc a la web d'Scratch 

Igual que quan treballem amb el micro, quan iniciem el joc rebrem un missatge de seguretat de Flash. Hem de contestar Allow (Permet) per poder fer servir la càmara.


Toti que el joc és complicat, ja que juguem amb diverses variables i vestits, podeu mirar de crear un joc semblant, aprofitant l'opció de la càmara. No dubteu a afegir als comentaris els vostres projetes.

Bon carnaval!!!!

Fruits Ninja

El videojoc Fruit Ninja, creat per l'empressa Halfbrick és un dels més populars per a mòbils i tablets, ja que aprofita fantàsticament la pantalla tàctil dels dispositius. Nosaltres en farem una versió per a Scratch que utilitzarà el ratolí, però amb poca feina més, el podrem transformar en un joc controlat pel nostre propi cos.

El Joc 



Veure el joc a la web d'Scratch

 

Com es fa?




Què necessites?


Per a la realització de la versió bàsica del jocs només necessitaràs un personatge, una fruita:
  • Tindrà dues disfresses, la fruita sencera i la fruita tallada. Per tal que apareguin moltes fruites una darrera l'altre, utilitzarem clons
  • Si la fruita és tocada, canviarà a la disfressa a tallada i ens donarà punts.Utilitzarem sensors de contacte.
  • Sortirà disparada del la part inferior de la pantalla, descrivint una paràbola. Per al moviment de la fruita treballarem amb variables locals.
La part més complicada del joc és el moviment de la fruita, ja que descriu una paràbola (els físics en dirien tir parabòlic). Per a realitzar-lo necessitarem tres variables locals, és a dir, que afecten només a aquell clon en concret. La velocitat horitzontal i el gir són moviments força senzills de descriure, ja que un cop seleccionat el valor a l'atzar (variable a l'atzar), simplement l'apliquem al bloc corresponent (suma a x o gira).

Però veureu que a la velocitat vertical inicial, un cop triada a l'atzar, li anem restant successivament una constant (un nombre que no varia). Aquesta constant és la gravetat, i és la força que fa que tot caigui. A la següent imatge, teniu comentats els blocs.


Quan tinguem el programa de la fruita ben polit el passarem als altres personatges (els altres tipus de fruita). 

Què més puc fer?

  • Millorarà l'efecte quan es talla la fruita: afegeix efectes de pixelació, transparència...
  • Afegir una bomba (o un donut, com en l'exemple) que resti punts.
  • Fer una pantalla de presentació del joc i una pantalla de Game Over.
  • Afegir més efectes sonors.
  • Afegir un objecte (ganivet, espasa) que es mogui amb el ratolí, o crear un deixant (rastre) quan es mogui el ratolí (com en l'exemple).

Vídeo

Tal i com hem creat el joc, és molt fàcil transformar-lo en un joc controlat per vídeo. Si tens una webcam (molts portàtils ja la porten incorporada) pots provar aquesta versió

L'únic que cal fer és activar el vídeo, i substituir el sensor de tocant ratolí pel sensor de moviment de vídeo.


Igual que quan treballem amb el micro, rebrem un missatge de seguretat de Flash. Hem de contestar Allow (Permet).



Un cop hagis acabat el joc, no t'oblidis de compartir-lo i afegir-lo a l'estudi de Fruit Ninja. Allà pots veure altres exemples i comentar-los.

https://scratch.mit.edu/studios/1250482/

Dedicat als meus petits amics Scratchers de Menorca i per a @SaXaranga. Moltes Gràcies!

Presentació sobre usuaris, projectes i estudis a #JEP15

Dins de la VII edició de les Jornades Programa, dedicades a programació educativa i robòtica escolar, vaig poder explicar com organitzo a l'escola la gestió d'usuaris, projectes i estudis amb els meus alumnes. Per la bona rebuda que he vist que ha tingut, crec que anem en bona linia. Deixo aquí la presentació.

Programació: Definir els nostres blocs

Definició

En els diferents llenguatges de programació existeixen procediments, subrutines o funcions, que no és res més que un petit programa que és utilitzat dins d'un programa més gran. Tot i que no son exactament el mateix concepte, per al nostre cas els podem asimilar.

Utilitzar funcions ens ajuda a reduir el còdi i a fer més fàcil entendre'l, mantenir-lo i depurar-lo.

Si per exemple, vull dibuixar un tauler d'escacs, no em preocupare de dibuixar un quadrat 64 vegades, si no que en programarè un prodediment "fill", separat del codi general del programa, i utilitzaré aquest procediment separat per dibuixar els quadrats:
  • Definiré un procediment que dibuixi un quadrat blanc i li posaré nom: [quadrat_blanc]
  • Definiré un procediment que dibuixi un quadrat negre i li posaré nom: [quadrat_negre]
  • Crearé el programa, on aniré cridant els procediments [quadrat_blanc] i [quadrat_negre] alternativament.

Com crear nous blocs a Scratch

A l'Scratch, com no podia ser d'una altra forma, els procediments o funcions tenen també el seu bloc corresponent. Per crear-los, cliquem a la patela Més blocs i cliquem el botó Crea un bloc.


Haurem d'assignar un nom al nou bloc, i un cop acceptat , passarem a definir-lo, colocant a sota de la definició els blocs que vulguem que s'executin en utilitzar-lo.



Un cop definit el nou bloc, podem utilitzar-lo dins el programa del personatge.


 A més de crear blocs simples, tenim també la posibilitat de passar paràmetres a la seva execució. D'aquesta manera podem crear un procediment més flexible i més fàcil de reutilitzar.




Exemples

Si volem tenir un personatge que salti quan el cliquem amb el ratolí o quan pitgem la fletxa amunt, podem definir el moviment de salt en un bloc, i utilitzar el mateix programa amb els dos esdeveniments. Quan volguem canviar l'alçada del salt, els efectes, ho tindrem tot concentrat.


En el joc de Pillar cuques, definim les noves cuques amb un nou bloc, que agrupa tots les accions necessàries: posicionar a l'atzar, triar el dibuix, el color i la mida.... i el cridem en crear clons:


En aquest altre exemple reprenem el quadrat amb un costat com a paràmetre. Ara, per anar canviant el costat, ens proveïm d'una variable que anem incrementant.


Invasió d'Asteroides

Els típics jocs de matamarcians són jocs de shoot 'em up. Dins d'aquesta categoria trobem jocs com l'Space Invaders o Asteroids. El joc que presentem aquí és una barreja dels dos anteriors i pot servir com a base per a desenvolupar-los amb petits canvis.

El Joc

Veure el joc a la Web d'Scratch


Com es fa?


Què necessites?
Per a la realització del joc necessites:
  • Una nau, que es mourà a dreta i esquerra.
  • Un projectil, que clonarem per a obtenir tants com necessitem. Farem que vagi sempre enganxat a la nau, i que es dispari amb una pulsació de tecla. Utilitzarem sensors per detectar quan arriba a dalt de tot.
  • Un asteroide, que també clonarem per a que n'apareguin molts. Apareixeran i es mouran a l'atzar i utilitzarem sensors per detectar quan han estat tocats per la bala, i quan arriben a baix de tot.
  • Definirem també una variable per controlar els punts.
Com veus, fem un ús intensiu de la clonació o còpia de personatges. Per a clonar personatges, creem còpies d'ell mateix, i programem que han de fer un cop s'han creat. Un cop han acabat la feina, eliminem les còpies creades.


Què més puc fer?
  • Crea una presentació pel joc, on s'expliqui la història del planeta i de l'heroi que pilota la nau.
  • Afegeix efectes de so: projectil, col·lisions, música de fons...
  • Afegeix diversos nivells: més asteroides, més velocitat...
  • Afegeix un comptador de temps, de forma que si obtenim tants punts en tants minuts, hem guanyat el joc.
  • Crea una opció per desplegar un escut protector, que duri uns segons, durant els quals la nau està protegida.
Un cop hagis acabat el joc, no t'oblidis de compartir-lo i afegir-lo a l'estudi de Invasió d'Asteroides. Allà pots veure altres exemples i comentar-los.