Blocchi personalizzati

 





Benvenuti,

oggi andremo a vedere un po' I mie blocchi di scratch, quei blocchi personalizzati che si possono creare e ci aiutano a migliorare e potenziare il nostro codice.

Non sarà una spiegazione passo passo visto che questi blocchi hanno molteplici funzionalità ma mi limiterò a mostrare tre esempi con altrettanti utilizzi per dare un primo input. Chi arriva ad utilizzare questi blocchi solitamente ha già una conoscenza di scratch non basica quindi parlerei più dell'uso che dei blocchi utilizzati.

Qui troverete 👉 QUI  il progetto dove poter visionare il codice e testare con mano l'esempio.

Easy way 👶

Sicuramente il modo più semplice e il primo che mi è venuto in mente è quello di usare i blocchi personalizzati per richiamare parte del mio codice. Senza scomodare ottimizzazioni da professionisti ( su scratch ho visto dei codici da paura , magari un giorno li comprenderò 😂 ) se mi accorgo di scrivere più volte gli stessi comandi mi viene spontaneo pensare di accorparli per essere richiamati all'occorrenza evitando scritture inutili e snellendo il tutto. Direi che questo è proprio lavoro per i mie blocchi, nell'esempio qui sotto ho immaginato di dover animare un mio personaggio , diciamo alla risposta esatta o sbagliata di un quiz, facendolo ruotare su se stesso, parlare e abbellire il tutto con dei suoni ( nel progetto puoi provarlo cliccando sul robot ).


Utilizzando il blocco a sinistra ANIMAZIONE in qualsiasi parte del mio codice , o meglio all'interno del codice dello sprite in cui viene creato, semplicemente usando un blocco andrò a richiamare tutta l'animazione. Facilità di inserimento, risparmio di tempo, di codice, ottimizzazione, vi ricordo anche che la valigetta in basso ci permette di salvare dal codice fino ad interi sprite quindi con un click possiamo portare i nostri blocchi personalizzati in giro per il progetto. Se creiamo una procedura molto lunga e complessa , per esempio che fa una serie di controlli o calcoli, che usiamo spesso, la combo valigetta + I miei blocchi diventa potentissima.  

Potenziamento ⏫
A proposito di calcoli, immaginiamo di dover calcolare una serie numerica lunghissima, la sommatoria dei primi 100 numeri, anzi 10000 😅 , esempio assurdo ma assecondatemi. Immaginiamo anche che non sappiamo quanti numeri vogliamo sommare perché viene scelto di volta in volta. Blocco personalizzato 💪 Non solo mi permette di creare un algoritmo da richiamare all'occorrenza ma anche di "passare" informazioni utili da inserire nel codice. Avremo quindi una parte statica ( i calcoli ) e una parte dinamica ( i dati ) che cambieranno. 

Sorvolando su cosa fa il codice la cosa interessante è che cliccando sullo sprite andiamo a chiedere i dati , in questo caso quanti numeri sommare, per poi passarli con il blocco risposta al blocco personalizzato SOMMATORIA . Lo stesso codice in momenti differenti farà calcoli diversi , dire una gran bella personalizzazione, sta poi a voi immaginare come usare questo strumento. Al momento della creazione del blocco possiamo scegliere quanti dati passare, personalizzarli con il nome migliore, scegliere tra numeri e testo oppure booleani, aggiungere delle etichette.
E non finisce qui, nel progetto potrete trovare due sprite identici , anche il codice è identico, con una sola differenza, il primo usa il blocco personalizzato aggiornando lo schermo, una caratteristica intrinseca di scratch e come è stato progettato, il secondo no. Questo aggiornamento ha dei vantaggi ma anche dei prezzi da pagare, per lo più in tempo di risposta da parte del sistema e nell'esecuzione delle animazioni, l'aggiornamento implica più lavoro quindi più tempo e pesantezza del codice da eseguire. Se in fase di creazione del blocco andiamo a spuntare la casella "esegui senza aggiornare" andremo a svincolare il codice da questo onere acquisendo molta più velocità di esecuzione, per esempio per calcoli lunghi o complessi , questo però influisce sulle animazioni e le modifiche grafiche eventualmente inserite nel codice. Nel progetto cliccando sui due sprite uguali possiamo vedere il tempo di esecuzione dei due codici, vi consiglio di testare con almeno 300000 come primo parametro. Sicuramente in questi guadagni hanno un ruolo fondamentale anche la connessione e il browser utilizzato ma sono tecnicismi in cui non saprei addentrarmi.

Super poteri 💪
Abbiamo salvato il nostro codice preferito per richiamarlo al bisogno, lo abbiamo personalizzato con i dati che più ci piacevano, adesso manca solo un ultimo parametro importante, il tempo.
Chissà quante cose sfuggono ancora alla mia conoscenza di scratch 😅
Possiamo estendere ad un tempo indefinito le potenzialità del nostro blocco personalizzato? Ovviamente si, con un po' di lavoro sul codice, vediamolo insieme.


Codice molto semplice ma quello che mi premeva sottolineare è la facilità con cui possiamo lasciare il nostro codice a lavoro contemporaneamente su più cloni in modo diverso.
Prima di tutto mi servono i cloni, che ho creato random dopo il cambio di costume. Una volta clonati li manderemo in una posizione a caso e li passeremo i dati al nostro blocco personalizzato : le coordinate xy dello sprite , la velocità e delle coordinate casuali x₁y₁.
Tutte queste informazioni saranno passate al blocchetto rosa che agevolato da un blocco per sempre permetterà di continuare a muovere il nostro sprite. A muovere ogni sprite e ognuno di loro in modo diverso perché gestiti da numeri casuali e "salvati" nella memoria del blocco personalizzato. Un solo codice e allo stesso tempo tanti codici, tutti diversi, non è stupendo? 😅
A prima vista potrebbe sembrare un codice replicabile con il semplice blocco quando vengo clonato ma il passaggio successivo, sfruttando le variabili del blocco personalizzato, è fondamentale. Nel primo caso dovrei creare svariate variabili e cercare un modo per assegnarle ai cloni per gestirli e differenziarli , nel secondo caso passando un valore che possiamo chiamare ID e una condizione da inserire nel per sempre posso identificare esattamente il clone e cosa fargli fare, magari integrando delle liste da cui prelevare altre informazioni.  
E voi come li utilizzate? Vi è venuta qualche idea leggendo questi tre esempi? Sono molto curioso delle vostre risposte che come sempre aspetto nei commenti sul social che preferite di più.

Alla prossima 
    Raffaele 

  
  

Commenti

Ciao, spero ti piaccia il blog. Se ti fa piacere qui puoi offrirmi un caffè!

Post popolari in questo blog

GOOGLE SCRIPT & KODULAR READ, WRITE, UPDATE, DELETE

Tu lo conosci THUNKABLE?