SCRATCH 3...



I MIEI BLOCCHI
In Scratch è possibile definire blocchi personalizzati da riutilizzare quando serve, riuscendo così a costruire programmi complessi con un numero relativamente basso di istruzioni.

I blocchi personalizzati di Scratch rappresentano una possibilità spesso poco sfruttata. Sostanzialmente si tratta di “procedure”, cioè di sequenze di istruzioni che possiamo costruire a piacere ed eseguire quando serve, usando un singolo blocco.
Un esempio è meglio di mille parole: mettiamoci pertanto al lavoro!
La categoria che ci interessa si chiama “I miei Blocchi”. Un click sul pulsante “Crea un Blocco” ci apre una finestra in cui diamo il nome al blocco personalizzato che vogliamo costruire.
Tralasciamo, per ora, le altre opzioni.
Una volta creato questo nuovo blocco, ecco come appare:

Sul riquadro dedicato al codice è apparso invece un blocco definisci, seguito dal nome che abbiamo scelto.
È qui sotto che dobbiamo agganciare i blocchi che fanno parte della procedura.
Nell’esempio sotto abbiamo creato il blocco Salta che, letteralmente, fa saltare lo sprite Cat.

Per “chiamare” (cioè far eseguire) la procedura dobbiamo usare il blocco Salta. Nell’esempio il blocco Salta viene eseguito quando si clicca su bandiera verde.

Creare blocchi personalizzati riduce le dimensioni del codice e, di conseguenza, anche la possibilità di commettere errori quando si programma.
Vediamo come spostare Cat, facendolo saltare più volte, con un numero molto limitato di blocchi.

Un’opzione che non abbiamo finora esplorato è quella relativa agli argomenti dei blocchi personalizzati. Quando si crea un blocco personalizzato in Scratch, infatti, esiste la possibilità di arricchirlo con un numero arbitrario di parametri.
Un parametro può essere un numero, un “booleano” (vero / falso) oppure una sequenza di caratteri .

È quindi possibile “parametrizzare” le procedure. Per capire meglio come funziona tutto questo pensiamo a come facciamo di solito a far saltare il gatto.
Nel codice sotto usiamo i blocchi ripeti e cambia. In entrambi questi due blocchi possiamo cambiare il valore contenuto nello spazio bianco.
Possiamo, cioè, modificare il numero di ripetizioni e il valore da aggiungere o togliere alla posizione y.

Aumentando il valore 20, Cat salterà più in alto. Aumentando il valore 5 Cat salterà più velocemente (e più in alto), ma in maniera meno fluida.
Possiamo trasformare lo script appena visto in un blocco personalizzato. Sotto abbiamo aggiunto due argomenti di tipo “numero” al blocco salta. Li abbiamo chiamati “ripetizioni” e “ampiezza”.

Vediamo come assemblare il blocco personalizzato salta partendo dallo script di sopra. Il risultato non è totalmente corretto. È facile infatti verificare che il gatto non torna giù, in quanto nel secondo blocco cambia il valore “ampiezza” è positivo, e non negativo come servirebbe.

Per rendere negativo un valore positivo basta moltiplicarlo per -1. Ci serve quindi un blocco della categoria “Operatori”
Con questa piccola modifica il blocco personalizzato funziona correttamente.

Ora siamo in grado di programmare due tasti per far saltare Cat in due maniere diverse, utilizzando però la stessa procedura.

BLOCCHI PERSONALIZZATI PER DISEGNARE CON SCRATCH
Per comprendere più a fondo il funzionamento dei blocchi personalizzati di Scratch, iniziamo un nuovo progetto.
Aggiungiamo i blocchi dell’estensione “Penna” per poter disegnare sullo stage



Creiamo due blocchi personalizzati, il primo per disegnare un triangolo, il secondo per disegnare un quadrato.
Da notare che il nome del blocco personalizzato può iniziare indifferentemente con una lettera minuscola o maiuscola.

Combinando questi due nuovi blocchi con un ciclo ripeti, facciamo disegnare a Cat 1 quadrato e 1 triangolo.( possiamo cambiare lo sprite Cat con lo sprite penna )

Mettendo in pratica quanto fino a qui abbiamo visto, possiamo creare un blocco personalizzato in grado di disegnare poligoni regolari. Gli argomenti sono il numero di lati e la lunghezza del lato.
Creiamo un blocco personalizzato disegna poligono aggiungiamo al blocco due argomenti num. lati e lung. lato.
​


