Immergiamoci in un avvincente gioco spaziale, dove il nostro intraprendente personaggio, Ripley, si trova a dover affrontare una sfida cosmica. Una sfera pericolosa si muove attraverso lo spazio, e il compito di Ripley è evitarla a ogni costo.
All’avvio del gioco, la sfera inizia a navigare lo spazio con una velocità casuale, mentre Ripley, con il tuo controllo, deve destreggiarsi abilmente per evitarla. Il nostro coraggioso protagonista dispone di 5 vite, e perderà una di esse ogni volta che la sfera lo colpirà.
Un tocco unico nel gioco è che, ogni volta che Ripley viene colpito, lo sfondo dello spazio cambierà, aggiungendo una dimensione visiva e dinamica al nostro viaggio intergalattico.
Il gioco prosegue fino a quando Ripley esaurisce le sue vite a disposizione. Che la fortuna cosmica sia con te mentre affronti questa avventura galattica!
In questa lezione realizzemo un gioco con gli indovinelli con Scratch. Proporremo 4 semplici indovinelli: 1) Giro curioso nel bosco fitto e frondoso. Mi arrotolo in palla, sono piccolo e gioioso. 2) Mi nutro di insetti nell’oscurità, Un piccolo mammifero nella mia verità. 3) Nella notte mi senti cantare, Con occhi grandi posso guardare. 4) Faccio il sonnellino durante la lunga stagione. Amo miele e pesce, sono un buon pescatore!
Per individuare la risposta corretta, occorre trascinare ciascun animale sulla macchina. Se la macchina parte con l’animale vuol dire che la risposta è corretta, altrimenti la macchina cambia colore e l’animale ritorna in posizione.
Ecco una possibile implementazione del gioco indovinelli con Scratch:
Realizziamo oggi un semplice programma sulla terna pitagorica utilizzando Scratch.
Il termine deriva da Pitagora. Infatti la terna pitagorica è l’aspetto aritmetico, del ben noto teorema geometrico di Pitagora, di cui ricordiamo l’enunciato:
In ogni triangolo rettangolo il quadrato costruito sull’ipotenusa è equivalente alla somma dei quadrati costruiti sui cateti.
Quindi, dal punto di vista aritmetico, se tre numeri interi a, b e c verificano la relazione a2 + b2 = c2, allora si dice che formano una terna pitagorica.
Esistono dunque infinite terne con numeri interi che soddisfano questa condizione, come ad esempio: 3, 4 e 5 oppure 5, 12 e 13 e così via.
Terna pitagorica con Scratch
Si realizzi dunque un programma che legga in input tre valori (a, b e c) e determini se questi numeri possono formare una terna pitagorica, utilizzando la programmazione a blocchi con Scratch.
Innanzitutto scegliamo uno sfondo e uno sprite qualunque.
Chiediamo di inserire il primo cateto (a), dopo il secondo cateto (b) ed infine l’ipotenusa (c).
Quindi verifichiamo che la proprietà descritta sopra sia soddisfatta.
Ecco quindi il codice completo:
In questo modo verifichiamo che il triangolo è rettangolo dal punto di vista geometrico e che i tre numeri formano una terna pitagorica dal punto di vista aritmetico.
Bene, ma se non volessimo dare importanza all’ordine di inserimento dei dati?
In questo caso allora occorre, prima di applicare la formula, calcolare il valore massimo tra i tre valori inseriti in input.
Quindi controlliamo innanzitutto se b è maggiore di a e se è vero allora:
– controllo se b è maggiore di c e:
– se vero allora si deve verificare che: a2 + c2= b2;
– se invece è falso si deve verificare che: a2 + b2 = c2.
– invece se b maggiore di a è falso allora controllo se a è maggiore di c:
– se vero allora si deve verificare che: c2 + b2= a2;
– se falso invece si deve verificare che: a2 + b2 = c2.
Ecco dunque la seconda soluzione dell’algoritmo sulla terna pitagorica con scratch.
Chiaramente la soluzione proposta è solo uno dei possibili metodi per realizzare l’algoritmo sulla terna pitagorica con Scratch.
Sviluppiamo oggi un programma che calcola la media di N numeri con scratch. Svilupperò l’algoritmo presentando due possibili soluzioni, di cui la più semplice è l’ultima, in fondo all’articolo.
Prendere in input da 1 a 9 materie, facendo un controllo dell’input, calcolare e visualizzare la media dei voti.
Procedimento algoritmo per il calcolo della media di N numeri con Scratch
La prima operazione da fare è scegliere uno sfondo e uno sprite qualunque.
Dopo creiamo le variabili necessarie.
In questo caso utilizzo: la variabile materie per indicare il numero delle materie; la variabile media per il calcolo della media; la variabile voto dove memorizzo il voto di ciascuna materia e la variabile numero_materia per indicare il numero della materia.
Quindi sviluppo il codice a blocchi.
Innanzitutto inizializzo la variabile media a zero, questa operazione è importante perché la prima volta che all’interno del ciclo eseguirò l’operazione: media=media+voto, l’elemento che ho messo in grassetto non avrà un valore ben definito perché non ancora calcolato. Allora conviene inizializzarlo all’elemento neutro della somma in quanto non comporta nessuna variazione nei risultati.
Dopo chiedo quante materie inserire e memorizzo questo valore in una variabile. Faccio un controllo per verificare che l’utente non inserisca valori minori di zero o maggiori di 9, cioè permettiamo l’inserimento da 1 a 9 materie.
Poi portiamo la variabile numero_materie a 1 e iniziamo ad inserire i voti (volendo potete anche effettuare un controllo sul voto inserito), utilizzando un ciclo ripeti materie volte (volendo potrei anche utilizzare un ciclo con contatore – ovvero ripeti fino a quando). Ogni voto è sommato e memorizzato nella variabile media. Al termine del ciclo si calcola la media con questa operazione: media=media/materie. Infine si visualizza il risultato.
Avrei anche potuto utilizzare una variabile somma dove sommare a parte i risultati, qualora servisse conservare il risultato della somma.
Ecco il codice a blocchi completo dell’algoritmo per calcolare la media di N numeri con Scratch.
Chiaramente l’algoritmo per il calcolo della media di N numeri con Scratch presenta altre soluzioni alternative.
Ad esempio, nella versione più semplice, senza controllo dell’input e conteggio delle materie, si poteva implementare semplicemente così:
Il blocco invia a tutti finito per il calcolo del punteggio:
Chiaramente questo è solo un metodo per la risoluzione del semplice ‘quiz Scratch scuola primaria’, potete trovare tanti altri metodi, come ad esempio l’utilizzo dei blocchi.
– Dopo finché il secondo numero non diventa zero facciamo queste operazioni:
– Memorizziamo nella variabile resto il resto della divisione di numero1 per numero2.
– Nella variabile numero1 memorizziamo il valore di numero2 e nella variabile numero2 memorizziamo il resto.
Provando con l’esempio sopra:
numero1=84 e numero2=48
quindi resto=numero1%numero2 cioè resto=84%48 ovvero resto=36.
Poi memorizziamo in numero1 il valore di numero2 e in numero2 il valore di resto e quindi numero1=48 e numero2=36.
E così via, faccio questi passaggi finché non ottengo più il resto.
Notate che dopo il ciclo ho inserito un’istruzione condizionale: se il numero1 che corrisponde al nostro massimo comune divisore è negativo allora diventa positivo. Perché ad esempio il MCD(84,48)=MCD(-84,48)=MCD(84, -48)=MCD(-84, -48).
Ecco il diagramma a blocchi completo.
Chiaramente si poteva introdurre il controllo per verificare che i numeri presi in input siano interi. Provate a farlo, vi darò la soluzione in un prossimo articolo.
Come si nota l’algoritmo di Euclide per il massimo comune divisore è una soluzione molto più semplice rispetto alla precedente.