Pràctica 2

(continuació de la pràctica 1)

En arribar a aquest punt, reorganitzarem el codi perquè cada funció quedi en un bloc separat i construirem els següents blocs: un per inicialitzar el programa, un altre per les funcions que posarem en marxa des del teclat i uns altres per a cada tipus de figura que vulguem dibuixar (quadrats, polígons, espirals). Així aconseguirem tenir un codi més clar i llegible. A la nostra dreta tenim al bloc d'inici, en el qual es fixen els paràmetres inicials: longitud dels costats, posició inicial, color del llapis etc. La penúltima instrucció és la que enllaça amb el bloc següent. Aquesta instrucció la trobarem a l'apartat de control (color groc). Clicant a la petita fletxa que hi ha a la dreta s'obrirà un petit menú, seleccionem nou i s'obrirà una finestra on escriurem inici, com a nom del missatge

Aquest missatge posarà en marxa tots els blocs que tinguin com a primera instrucció en rebre inici com el que tenim a la nostra dreta. Analitzem que fa aquest bloc; després de la instrucció d'inici ve una instrucció per sempre, que engloba totes les altres instruccions, això significa que aquestes instruccions es repetiran de forma indefinida i el que aconseguirem amb això és que el programa estigui sempre pendent de si polsem alguna de les tecles que hem escollit per controlar el programa. També hem posat una instrucció esperar 0,1 segons, això ho fem per tal que la repetició continuada del bloc no bloquegi el programa i per evitar la doble pulsació de les tecles.

Dins del per sempre hi trobem una serie d'instruccions condicionals, és a dir que només s'executaran si es compleix una condició, en aquest cas, si una determinada tecla és premuda. La instrucció que s'executa en cadascun dels casos és la d'enviar un missatge que posa en marxa diferents blocs de codi. En aquest exemple els diferents blocs es troben en el mateix objecte, però no sempre és així, perquè podríem estar en altres objectes i ser utilitzats per enviar-se missatges de l'un a l'altre i així concatenar un seguit d'accions. En aquest cas els missatges són quadrat, polígon, espiral que posaran en funcionament els corresponents blocs que executen aquestes accions. Aquest tipus d'estructures són útils per enviar ordres des del teclat i veureu que es repeteixen en diferents exemples, amb petites variacions. Veiem ara com queden els diferents blocs que executen aquestes accions.

Aquests dos primers blocs que dibuixen les formes elementals i el seu codi es dedueixen directament del que s'ha explicat anteriorment, ara escriurem el codi d'un bloc que dibuixa formes més complexes; per això, primer crearem dues noves variables, angle i increment. La primera guardarà l'angle de gir del llapis i la segona servirà per augmentar la variable passos a cada repetició. Veiem el codi i, a continuació, analitzem com funciona.

El bloc comença el rebre el missatge espiral, a continuació fixa la variable passos a 0. Ara ve una instrucció nova: repetir fins que es compleixi una condició, en el nostre cas fins que el llapis toqui una vora, d'aquesta manera aconseguim que el dibuix ocupi pràcticament tota la pantalla. La primera instrucció de la repetició és la que mou l'objecte i que determina la longitud del traç, fixeu-vos en que, a la primera repetició, la variable pren per valor zero i que, a cada repetició, el seu valor augmenta el valor de la variable increment. Això fa que la corba tingui forma d'espiral. Feu la prova en un valor per l'angle de 40° i per l'increment 0,4 canvieu ara el angle per 43° després per 61°,119° …. en general, si l'angle escollit correspon a l'angle d'un polígon regular obtindrem una espiral, si és una mica més gran o petit obtindrem figures que es cargolen sobre si mateixes.

Al final de la repetició posem una instrucció que va canviant el color del llapis cada vegada, per tal d'aconseguir una imatge més vistosa .

Per acabar aquesta pràctica crearem un altre bloc que servirà per esborrar la pantalla i tornar a situar el llapis a la posició d'inici, sense haver de prémer la bandera verda, sinó que ho farem amb la tecla espai.

En la imatge següent es mostra el codi complet d'aquesta pràctica.