• Non ci sono risultati.

Un programma in Snap! consiste in uno o pi`u scripts, ognuno dei quali realizzato da blocchi. Questo `e un tipico script:

Figura 4.2: Esempio di script base in Snap!

I blocchi dello script sono di colori differenti, corrispondono a tre delle otto palettes in cui si possono trovare. L’area delle palette si trova sulla parte sinistra della schermata.

I blocchi gialli provengono dalla palette di Controllo, quelli verdi dal- la palette Penna mentre i blu dalla palette dei Movimenti. Lo script viene assemblato trascinando i blocchi dalla palette all’area di scripting.

I blocchi si attaccano tra loro grazie alle indentazioni ( da qui il nome Snap!).

CAPITOLO 4. SNAP! BUILD YOUR OWN BLOCKS 57

”Blocks snap together(hence the name Snap! for the language) when you drag a block so that its indentation is near the tab of the one ”

Nella parte alta dello script si trova hat block, tipicamente rappresentato dalla parola ”when”; lo script inizia quando la bandiera verde viene cliccata. Uno script non pu`o avere pi`u di un hat block e questo pu`o essere utilizzato solo nella parte superiore. Altri blocchi presenti sono i command blocks questi corrispondono alle azioni che lo sprite deve eseguire all’interno dello stage.

Snap mette a disposizione dell’utente la possibilit`a di poter modificare il costume dello sprite rispetto all’Alonzo costume, simbolo di Snap!, che prende il nome dalla chiesa di Alonzo, un matematico che ide`o le procedure come dati.

Per poter modificare il costume esistono due modi, il primo, cliccando su file icon e scegliendo ”Costumes”, permette di scegliere da una lista di costumi provenienti da librerie pubbliche mentre il secondo, da la possibilit`a di caricare un’immagine direttamente dal pc purch´e in formato compatibile con il browser. In aggiunta al costume lo sprite pu`o avere anche un suono. I file musicali possono essere importati in qualunque formato supportato dal browser.

Esistono principalmente due blocchi per l’utilizzo del suono che sono

per permettere allo script di continuare l’esecuzione mentre il suono `e in ripro-

duzione e che attende il completamento del suono

prima di continuare lo script.

Prevedendo la possibilit`a di lavorare direttamente sul browser web Snap! dispone di due diverse modalit`a di salvataggio dei progetti. La ragione di questa complessit`a `e che Javascript, con cui `e implementato Snap!, limita deliberatamente la capacit`a dei programmi in esecuzione in un browser di ”affettare” il computer; questo significa che mandando in esecuzione i progetti Snap! di altri utenti non c’`e il rischio di eliminare i propri ma, rende le cose un po’ complesse.

Cliccando sulla ToolBar scegliendo l’icona appare un men`u con due possibili scelte : Cloud o Browser.

Nel caso in cui l’utente selezioni browser il progetto verr`a salvato in un file speciale che pu`o essere letto solo sullo stesso computer, dallo stesso bro- wser, collegato alla stessa pagina web. In questo caso il progetto non verr`a visualizzato in un elenco di file al di fuori di Snap!, questo `e come Javascript li protegge dai malware.

Questa procedura porta a due ulteriori possibilit`a: • Localstore

Un’importante limitazione di questa modalit`a di salvataggio `e la quantit`a totale di spazio di archiviazione disponibile la quale verr`a impostata dal brow- ser, per tutti i siti Web combinati. (Questo limite pu`o essere modificato nelle

58 CAPITOLO 4. SNAP! BUILD YOUR OWN BLOCKS

preferenze del browser). Inoltre, se il browser `e configurato per disabilitare i cookie dai siti Web non consentir`a questa circostanza di salvataggio.

• XML

Il secondo modo per salvare un progetto sul computer richiede due passaggi, ma non ha limiti. I progetti salvati con questa modalit`a sono normali file sul pc e possono essere condivisi con gli amici, possono essere aperti in qualsiasi browser e non hanno limiti di dimensione. Dal menu file, scegliere ”Esporta progetto ...”, a seconda del browser in alcuni casi il progetto verr`a scaricato sul computer in un file nella directory dei download in altri casi, invece, l’intera finestra di Snap! scomparir`a, sostituita da una schermata rappresentante il progetto in sintassi XML.

Un’ulteriore possibilit`a `e salvare il progetto in ”cloud”. Per fare ci`o `e necessario avere un account Snap!.

Dopo aver salvato un progetto se si desidera ricaricarlo sulla piattaforma baster`a aprilo o dal menu ”File” scegliendo Browser o Cloud oppure impor- tandolo se salvato in formato XML.

Snap! concede anche l’importazione di progetti creati in BYOB 3.0 o in Scratch 1.4 o 2.0. Quasi tutti questi progetti funzionano correttamente in Snap!, a parte un piccolo numero di blocchi incompatibili.

La prima versione di Snap!, chiamata BYOB ”Build Your Own Blocks”, fu la pi`u importante funzionalit`a aggiunta a Scratch. La differenza tra i due linguaggi, come sopra descritto, `e la possibilit`a fornita da Snap! di creare nuovi blocchi.

Nella palette si trova il pulsante ”Make a block” tramite il quale si apre una finestra di dialogo nella quale `e possibile scegliere la forma ed il nome del blocco. Seguendo una convenzione che dovrebbe essere familiare agli utenti di Scratch esistono tre forme di blocco.

I blocchi a forma di puzzle sono comandi e non riportano alcun valore. I blocchi ovali sono Reporter e i blocchi esagonali sono Predicati, riportanti valori booleani (true o false).

Supponendo di voler creare un blocco chiamato ”quadrato” che disegna un quadrato si sceglie Movimenti, Creazione blocco digitando ”square” nel campo del nome. Quando si fa clic su OK, si entra nell’Editor blocchi che funziona proprio come la creazione di una sceneggiatura nell’area di scripting dello sprite, tranne per il fatto che il blocco ”hat” in alto, invece di dire qualcosa di simile a ”quando mi viene richiesto”, ha un’immagine del blocco che si sta costruendo ovvero il prototipo del blocco personalizzato.

Trascinando i blocchi sotto al ”cappello” si programma il blocco persona- lizzato dopo di che il tutto viene salvato. Come per tutti i blocchi preesistenti `e possibile ideare un custom block che prende in ingresso uno o pi`u parametri.

CAPITOLO 4. SNAP! BUILD YOUR OWN BLOCKS 59

Esistono dodici tipi di forme di input oltre a tre categorie che si escludono a vicenda. Il tipo di default `e ”qualsiasi”, il che significa che lo slot in input deve accettare qualunque valore di qualunque tipo.

La disposizione degli input `e sistematica, come mostra l’immagine ogni riga rappresenta una categoria.

Figura 4.3: Tipologie di input per la creazione dei blocchi

La seconda riga contiene le tipologie di input esistenti in Scratch: Number, Any e Boolean.

A volte sarebbe utile poter salvare, non solo i blocchi personalizzati creati all’interno del progetto stesso ma, anche una raccolta di blocchi che si ritiene possano essere utili in pi`u di un progetto. Per poter salvare la propria libre- ria personale si utilizza il meccanismo di esportazione XML sopra descritto scegliendo la funzione ”Esporta blocchi”. Verr`a aperta una finestra la quale mostra tutti i custom blocks.

60 CAPITOLO 4. SNAP! BUILD YOUR OWN BLOCKS `

E possibile deselezionare alcune delle caselle di controllo per selezionare esattamente quali blocchi si desidera includere nella propria libreria; premendo ok si aprir`a una nuova scheda con le definizioni in codifica XML.

Documenti correlati