Creiamo adesso un gioco in Scratch dove lo squalo mangia dei pesci e guadagna punti, ma attenzione se tocca il granchio perde una vita.
Istruzioni
Forniamo ad esempio le seguenti istruzioni:
Ogni volta che lo squalo mangia Fish1 o Fish3 o Fish5 guadagna 5 punti
Se mangia Octopus guadagna 10 punti
Se invece mangia la stella marina guadagna 20 punti
Ogni volta che lo squalo toccherà il granchio (crab) perderà una vita
Chiaramente si possono aggiungere tanti altri pesci!
Procedimento
Per prima cosa ho scelto lo sfondo dell’acquario che è presente in Scratch e ho aggiunto i pesci e lo squalo. Ho fatto in modo di far apparire le istruzioni del gioco per spiegare al giocatore come funziona.
Quindi ho creato il seguente sprite:
Quando si preme lo spazio verrà mandato il messaggio di inizio gioco che farà partire il tutto. Di seguito lo script associato allo sprite sopra:
Ho poi creato gli script per i pesci facendoli muovere da una parte all’altra. Gli script per fish1, fish3 e fish5 sono uguali, ho solo fatto variare le coordinate di partenza.
Dopo ho creato lo script per il polpo (octopus), facendolo muovere solo lungo l’asse delle y e facendogli cambiare costume.
Poi ho creato lo script per la stella marina, facendola scomparire per 12 secondi dopo che viene mangiato dallo squalo.
Ci rimane adesso lo script per lo squalo che si muoverà grazie all’uso delle frecce direzionali. Ho fatto in modo che ogni 0.1 secondi cambiasse costume spalancando la bocca per mangiare i pesciolini. Le vite diminuiscono ogni volta che tocca il granchio (crab) e infine passa al costume shark-c che lo rappresenta sfinito!!
Infine ho inserito i due script game over e vittoria!
Chiaramente, questa è solo una base di partenza, potete personalizzarlo come meglio credete.
Per chi volesse scaricare il file completo di Scratch, può cliccare sotto:
Oggi realizzeremo un semplice script che ci permetterà di risolvere le equazioni di primo grado in Scratch.
Partiamo dando una definizione.
Si dice equazione una uguaglianza tra due espressioni che si verifica solo per particolari valori assegnati alle variabili dette incognite in essa contenute.
Le equazioni di primo grado sono equazioni in cui l’incognita è elevata all’esponente 1.
Le equazioni di primo grado sono dunque quelle espresse ad esempio nella forma:
ax+b=0
Facciamo un esempio banale:
4x+8=0 è un’equazione di primo grado
4x2+8=0 non è ovviamente di primo grado
Algoritmo in Scratch per il calcolo delle equazioni di primo grado.
Realizziamo adesso il nostro algoritmo. Prendiamo in input a, ovvero il coefficiente del termine di primo grado e b, il termine noto.
Dobbiamo calcolare il valore della nostra incognita x che facendo un semplice passaggio sarà:
ax+b=0 da cui ax=-b e da qui si ricava x=-b/a
È necessario fare un controllo sulle due variabili a e b perché se sono entrambe uguali a zero la nostra equazione è indeterminata, invece se solo la variabile a è uguale a zero l’equazione è impossibile, in quanto dovremmo dividere per zero.
Se una delle condizioni sopra non si verifica allora posso risolvere la mia equazione. Infatti, anche se b fosse uguale a zero l’equazione si potrebbe risolvere, in questo caso la nostra x sarebbe uguale a zero.
Esempio:
Se ho questa equazione:
7x+5=0 la nostra x sarà uguale a 0,714528…
Sarebbe preferibile arrotondare il risultato a 0,714.
Ma la funzione arrotonda di Scratch porterebbe la variabile x a 1.
Con il semplice metodo che ho utilizzato invece ottengo un valore approssimato a 0,714. Come ho fatto?
Premettendo che è possibile trovare altre soluzioni, io ho agito in questo modo.
Ho creato una variabile che ho chiamato approssimazione per gestire l’arrotondamento. Dopo ho moltiplicato arrotonda di x per 1000 così da avere 714 e poi per avere come risultato 0,714 chiaramente ho diviso per 1000.
Allego lo script completo per il calcolo delle equazioni di primo grado in Scratch.
Potremmo anche pensare ad una soluzione che richieda di inserire nuovamente la variabile a se si inserisce da tastiera un valore uguale a zero. Nei linguaggi di programmazione userei ad esempio il ciclo do-while.
Ecco quindi un’altra possibile soluzione nella quale chiedo l’inserimento di entrambi a e b, ma potrei chiedere anche solo a.
Chiaramente proponete pure la vostra soluzione nei commenti al fine di confrontarci.
Vediamo un algoritmo utile a disegnare poligoni regolari con Scratch.
L’obiettivo è quello di prendere il numero dei lati in input e in base alla risposta disegnare un poligono regolare.
Esempio:
Se prendo in input il numero 4 disegnerò un quadrato.
Se invece prendo in input il numero 6 disegnerò un esagono e così via.
Cosa utilizzeremo per disegnare i poligoni con Scratch?
Utilizzeremo lo strumento penna. Infatti, la penna è uno strumento utilissimo di Scratch se si vuole disegnare qualcosa.
Algoritmo per disegnare poligoni regolari con Scratch
Prepariamo la nostra scena scegliendo uno stage (io ho messo semplicemente del colore) e lo sprite (il gattino è lo sprite di default). Dunque posizioniamo lo sprite in alto al centro in modo tale da avere lo spazio necessario per disegnare il nostro poligono regolare. Io ho messo come coordinate (x, y) 0 e 120.
Chiediamo quanti lati ha il nostro poligono e memorizziamo la risposta in una variabile che chiamiamo ad esempio lati.
Usiamo la penna giù (ricordiamo che di default la penna è sempre su, se vogliamo disegnare dobbiamo impostare penna giù) di un colore e spessore a nostra scelta per poter disegnare il nostro poligono.
Dopodiché realizziamo il nostro ciclo che permetterà al gattino di disegnare il poligono regolare. Il ciclo verrà ripetuto tante volte quanti sono i lati.
Ma di quanto dovrà ruotare il gattino?
Ricordiamo che i poligoni regolari hanno i lati uguali, gli angoli interni uguali e anche gli angoli esterni sono uguali.
La somma degli angoli esterni di un poligono regolare è un angolo giro ovvero 360 gradi.
Per cui l’angolo di rotazione della direzione di avanzamento, che il gattino deve eseguire, è pari a 360/lati.
La rotazione deve avvenire sempre con lo stesso angolo.
Quindi nel caso del quadrato dovrà ruotare di 360/4 ovvero 90 gradi. Nel caso di un esagono dovrà ruotare di 360/6 ovvero 60 gradi e così via.
I passi che dovrà compiere lo sprite sono sempre gli stessi proprio perché trattasi di un poligono regolare.
Ecco il semplice script che ho realizzato.
Chiaramente ci possono essere tanti altri modi per realizzare questo algoritmo, proponete pure la vostra nei commenti sotto.
Esempio di programma che visualizza la successione di Fibonacci con Scratch.
Ricordiamo che la successione di Fibonacci è una successione di numeri interi positivi in cui ciascun numero a cominciare dal terzo è la somma dei due precedenti e i primi due sono 1, 1.
Ad esempio se N=9 avremo i seguenti termini 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34.
Esempio di successione di Fibonacci con Scratch
Con Scratch è possibile realizzare un algoritmo che riesce a calcolare gli N termini della successione.
Per svilupparlo prendiamo uno sprite qualsiasi, ad esempio il gattino classico di Scratch e gli facciamo dire un messaggio del tipo: “Salve! Creiamo insieme la successione di Fibonacci”.
Successivamente chiediamo quanti termini della successione di Fibonacci visualizzare.
Permettiamo l’inserimento di valori per N maggiori di 1, in modo da visualizzare almeno due termini della successione di Fibonacci.
Per sviluppare questo controllo in Scratch inseriamo un ripeti fino a quando N è maggiore di 1, in questo modo se viene inserito un numero negativo si richiede nuovamente l’inserimento.
Creiamo poi due variabili di nome primo e secondo che rappresentano i primi due termini della successione di Fibonacci. Settiamo le due variabili appena create a 1 e le visualizziamo in output.
Dopo creiamo una variabile contatore che facciamo partire da 2 in quanto i primi due termini della successione sono stati già visualizzati.
Realizziamo dunque un ciclo che si ripete fino a quando il contatore (che abbiamo detto parte da due) raggiunge N e calcoliamo all’interno del ciclo il terzo numero della successione di Fibonacci. Creiamo quindi una variabile terzoche poniamo uguale alla somma di primo più secondo.
Scambiamo poi le variabili ponendo primo uguale a secondo e secondo uguale a terzo.
Di seguito l’algoritmo completo con Scratch:
Non ci resta che avviare il programma e provarlo!
Chiaramente ci possono essere tante altre soluzioni per la realizzazione dell’algoritmo. Proponete pure la vostra nei commenti sotto.
Realizziamo un programma che calcoli il massimo tra N numeri in Scratch. Ovvero dati N numeri determinare il maggiore.
Definizione di massimo
Il valore massimo, molte volte detto semplicemente max, è il valore più grande tra una serie di numeri.
Procedimento dell’algoritmo che calcola il massimo tra N numeri con Scratch
Primo procedimento con ripeti N volte
Per sviluppare l’algoritmo utilizzeremo due variabili: N e Max.
Quindi, chiediamo quanti numeri vogliamo inserire e memorizziamo il risultato in N.
Dopo chiediamo il primo numero e lo memorizziamo nella variabile Max. Quindi, dato che abbiamo chiesto un numero adesso ne dovrò inserire N-1.
Poniamo N uguale ad N-1.
Realizziamo poi un ciclo che per N volte chiede di inserire dei numeri. All’interno del ciclo ciascun numero verrà confrontato con il MAX e se è maggiore la variabile Max assumerà il valore di quel numero.
Abbiamo così realizzato l’algoritmo che calcola il massimo tra N numeri in Scratch.
Questa soluzione è stata realizzata utilizzando ripeti N volte e quindi non è servito il contatore.
Ma realizziamo anche una soluzione che invece utilizzi il ciclo ripeti fino a quando.
Secondo procedimento dell’algoritmo che calcola il massimo tra N numeri con Scratch
Seconda soluzione con l’utilizzo di ripeti fino a quando
Per realizzare questa soluzione servono tre variabili:
N che indica quanti numeri vogliamo inserire;
La variabile Max che conterrà il valore massimo;
La variabile contatore che terrà traccia dei numeri inseriti.
Quindi chiediamo quanti numeri vogliamo inserire e memorizziamo il valore nella variabile N.
Dopo, come abbiamo fatto prima, chiediamo il primo numero e lo memorizziamo in Max.
Facciamo partire la variabile contatore da N-1 perché abbiamo già inserito un elemento, allo scopo di decrementarla ogni volta che si inserisce un numero.
Quindi realizziamo un ciclo che si fermerà quando il valore di contatore raggiungerà zero, ovvero quando si inseriranno tutti i numeri.
All’interno del ciclo, come abbiamo fatto prima, confrontiamo i valori inseriti con Max e ne sostituiamo il valore solo nel caso in cui N è maggiore del Max. Dobbiamo anche decrementare il contatore di 1. Se dimenticheremo di farlo il ciclo infatti diventerebbe infinito.
Ecco lo script completo.
Chiaramente l’algoritmo può essere ampliato con tanto altro, ad esempio si potrebbe inserire un controllo dell’input.
Molte volte si vedono alcuni algoritmi risolti assegnando max=0 invece di chiedere il primo numero. A mio avviso non è molto corretta in quanto se ad esempio si presenta il caso in cui tutti i numeri inseriti sono dei numeri negativi il massimo risulterà essere 0!
Vediamo adesso come realizzare un algoritmo che calcoli il minimo fra tre numeri in Scratch.
Il procedimento che adotteremo sarà quello che abbiamo già utilizzato nella ricerca del massimo fra tre numeri.
Definizione di minimo
Il valore minimo non è altro che il valore più piccolo tra un insieme di numeri.
Procedimento
Per sviluppare l’algoritmo creiamo 4 variabili come in figura:
Le variabili posso chiamarle ad esempio A, B, C e minimo.
Successivamente sviluppo lo script, chiedendo in input i tre numeri A, B, C.
Assegno al minimo il primo valore, ovvero A.
Dopo confronto il secondo numero con B. Se B è minore assegno al minimo il valore di B.
Poi vado avanti e confronto C con il minimo. Se C è più piccolo assegno al minimo il valore di C.
Alla fine dirò qual è il minimo fra tre numeri e si fermerà lo script.
Esempio Minimo fra tre numeri in Scratch
Se provo ad inserire ad esempio questi numeri:
A=4
B=8
C=2
Si avranno questi passaggi:
All’inizio al minimo viene assegnato il valore di A.
Quindi minimo=4
Poi si controllerà se B è più piccolo del minimo. In questo caso ci chiediamo 8 è minore di 4? Non lo è, quindi andiamo avanti. Dunque adesso controlleremo se C è più piccolo del minimo. In questo caso ci chiediamo 2 è minore di 4? Lo è quindi assegniamo al minimo il valore di C.
Dunque minimo=2
Alla fine il programma terminerà dicendo: il minimo è 2.
In Scratch ci possono essere tante altre soluzioni che possono risolvere questo algoritmo che calcola il minimo tra tre numeri. Provate anche voi a sviluppare una soluzione a aggiungetela nei commenti sotto!
Commenti recenti