Giochi Blocly: il labirinto

Labirinto

Come puoi aiutare l’omino a raggiungere la bandierina?
Quali istruzioni devi dare a Blockly?

Il percorso che l’omino deve seguire è quello mostrato nel riquadro in alto a sinistra della schermata.

I blocchi che puoi utilizzare sono quelli presenti nella colonna centrale.

Per dare le istruzioni a Blockly devi trascinare i blocchi che ti servono nell’area di lavoro e collegarli in maniera opportuna.

In questo gioco incontri i primi veri blocchi di Blockly.

In Blockly esistono diversi tipi di blocchi, divisi in gruppi in base a quello che possono fare, e rappresentati da un colore distintivo.
I blocchi viola servono a far muovere il personaggio del gioco, in questo caso l’omino.
 

Sul tuo schermo, sarà apparsa una finistra di pop up: dopo qualche istante di inattività, Blockly ti offre un suggerimento. In questo caso, ti suggerisce di mettere uno sopra l’altro due blocchi sposta in avanti per far raggiungere la bandierina al nostro omino.

Prima di fare come ti viene suggerito, nota che un blocco sposta in avanti è già presente nell’area di lavoro. Questo significa che, se eseguiamo il programma, qualcosa dovrà succedere. Vediamo cosa: premi il pulsante Esegui il programma.

Cos’è successo?
L’omino si è spostato in avanti verso destra, ossia nella direzione indicata dalla freccia verde che si trova ai suoi piedi.
Non ha però raggiunto la bandierina; è rimasto a metà strada.

Per fargli raggiungere la bandierina dobbiamo ripetere l’istruzione sposta in avanti una seconda volta; abbiamo cioè bisogno di mettere un nuovo blocco sposta in avanti sotto quello già presente nell’area di lavoro… come del resto ti era stato subito suggerito…

Per tornare alle condizioni di partenza, premi il pulsante reimposta.

Fai ora click sul blocco sposta in avanti e trascinalo sotto quello presente nell’area di lavoro.

Premi il pulsante Esegui il programma.

Complimenti! Hai finito il 1° livello!

Visualizzerai una schermata simile alla seguente:

JavaScript è un linguaggio di programmazione; Blockly ti mostra le righe di codice in Javascript che corrispondono ai blocchi che hai utilizzato.

Sei pronto per il 2° livello?
Bene, allora premi OK.

Per raggiungere la bandierina, adesso l’omino non solo dovrà spostarsi in avanti in linea retta, ma anche girarsi.
Non ci sono problemi! Per farlo girare puoi usare i blocchi svolta a sinistra e svolta a destra.

Trascina nell’area di lavoro tutti i blocchi che ti servono e collegali come ritieni opportuno.

Quando hai finito, premi Esegui il programma.

Se l’omino non riesce a raggiungere la bandierina, vuol dire che hai sbagliato qualcosa, e il punto in cui si blocca ti suggerisce dov’è il problema. Prova a guardare l’esempio nella figura segente:

Blockly esegue le istruzioni partendo dalla prima in alto e proseguendo verso il basso. L’omino si è bloccato dopo che sono state eseguite le istruzioni sposta in avanti, svolta a sinistra, sposta in avanti; questo significa che il problema è nell’istruzione svolta a destra!

Premi Reimposta e prova a scrivere le istruzioni corrette.
Quando ci riesci, passa al livello 3.

In questo livello appare un nuovo blocco, questa volta di colore verde. I blocchi verdi sono i loop, e dicono a Blockly di ripetere una certa istruzione fino a quando si verifica una certa condizione, nel caso in esempio, fino a quando l’omino raggiunge la bandierina.
Quale istruzione viene ripetuta? Quella specificata dal blocco inserito all’interno del loop.

Nota che, sotto la schermata del gioco, è apparso un nuovo suggerimento: “Raggiungi l’arrivo usando solo due blocchi…”.
Questo significa che puoi usare 1 solo blocco oltre al blocco sposta in avanti che è già presente nell’area di lavoro.

Cosa deve fare l’omino per raggiungere la bandierina? Deve andare avanti e continuare a farlo finché non la raggiunge… esattamente l’istruzione che possiamo dare usando il loop ripeti con, al suo interno, il blocco sposta in avanti.

Prendi il blocco verde ripeti e trascinalo nell’area di lavoro.
Incastra il blocco viola sposta in avanti all’interno del loop ripeti.

Come vedi, non puoi usare più nessun blocco… quelli nella colonna centrale sono diventati tutti grigi… e non sono più a tua disposizione.

Premi Esegui il programma.

L’omino raggiunge la bandierina.

Non è difficile capire l’utilità del loop ripeti. Avremmo potuto raggiungere lo stesso risultato usando 5 blocchi sposta in avanti posti uno sotto l’altro. 5 blocchi contro solo 2. E il bello è che se anche la bandierina fosse stata a 1000 blocchi sposta in avanti di distanza, il programma con il loop sarebbe esattamente identico a quello che abbiamo scritto ora.

Sei pronto per il livello 4 del labirinto Blockly?

Come ti viene suggerito, è possibile usare più di un blocco all’interno del loop ripeti… ed è esattamente quello che devi fare per far raggiungere la bandierina all’omino in questo nuovo labirinto.

Il percorso che deve fare l’omino ti ricorda qualcosa? Non mi stupisce, perché non è molto diverso da quello del livello 2… anzi è la ripetizione dello stesso identico percorso presente nel livello 2…
Nel tuo programma, dovrai quindi usare gli stessi blocchi che hai usato nel livello 2, nello stesso ordine, all’interno di un loop ripeti.

Ci sei riuscito? Bene! Allora passa al livello 5!

Nel livello 5 non c’è nulla di nuovo rispetto a quello che già conosci… quindi prova a usare i blocchi che ti sembrano corretti e testa il tuo programma premendo Esegui programma fino a che non funziona correttamente…

Nel livello 6 c’è un nuovo blocco di colore blu.

I blocchi blu chiedono a Blockly di verificare se una certa condizione è soddisfatta e, nel caso lo sia, di compiere l’azione in essi descritta. Come dice il suggerimento… Con se l’azione verrà eseguita solo se la condizione è soddisfatta: nel caso del blocco che hai a disposizione, se c’è strada a sinistra, allora viene eseguita l’azione definita dal blocco che inserirai al suo interno. In caso contrario, e cioè se non c’è una strada a sinistra, Blockly passa all’istruzione che segue il blocco se.

Cosa deve fare il nostro omino per raggiungere la bandierina? Osserva con attenzione la forma del labirinto.
L’omino deve continuare a spostarsi in avanti e se c’è strada a sinistra, svoltare a sinistra!

Hai visto che l’omino controlla se c’è una strada alla sua sinistra dopo ogni passo? Questo perché la condizione viene controllata ad ogni ciclo del loopripeti.
Dal suggerimento a sinistra, vediamo che possiamo usare ancora un blocco. Possiamo usarne 1 per migliorare il nostro programma facendo fare all’omino due passi di fila prima di controllare se c’è strada a sinistra:

Adesso il programma è molto più veloce!

Passiamo al livello 7.

I blocchi che hai a disposizione sono gli stessi dei livelli precedenti. Nota solo che all’interno del blocco Se c’è un menu a discesa che ti permette di cambiare la condizione da controllare. Per il resto, il labirinto è un po’ più complicato dei precedenti, almeno a prima vista… ma le istruzioni che devi dare perché l’omino raggiunga la bandierina non sono molto diverse da quelle date negli altri casi…

Prova a collegare i blocchi che ti sembrano necessari e testa il programma con il pulsante Esegui programma.

Funziona? Bene! Allora passa la livello 8!

Questa volta hai a disposizione 9 blocchi!

Nei livelli precedenti l’omino doveva girare sempre nella stessa direzione: o a destra o a sinistra. Quindi 1 blocco se era sufficiente per risolvere il problema. In questo labirinto, l’omino deve invece girare sia a destra che a sinistra: dovrai perciò controllare entrambe le condizioni se c’è strada a destra e se c’è strada a sinistra!

I blocchi se possono essere uniti e usati uno dopo l’altro; in questo caso Blockly partirà dal primo e passerà ai successivi procedendo dall’alto verso il basso. Se la condizione del primo blocchi se è vera, Blockly esegue l’azione e passa al blocco se seguente. Se non è vera, passa direttamente al blocco se seguente. E così via.

Prova a scrivere il programma. Testalo con Esegui il programma finché l’omino non raggiunge la bandierina.

Quando funziona, passa al livello 9.

Nel livello 9 hai a disposizione un blocco se-altrimenti. Quest’ultimo è simile al blocco se, ma ti permette di scegliere fra due azioni possibili da compiere: una da compiere se la condizione posta viene soddisfatta, una da compiere se non viene soddisfatta.
Se c’è strada avanti, vai avanti, altrimenti gira a sinistra! O una o l’altra!

Prova a usarlo per far raggiungere la bandierina all’omino!

Ci sei riuscito? Bene! Allora passa la livello 10!

Questo labirinto è molto più difficile dei precedenti. Non basta 1 blocco se-altrimenti per gestire tutte le scelte che l’omino deve fare per raggiungere la bandierina.

Prova a scrivere il programma.

Avrai bisogno di inserire blocchi se-altrimenti all’interno di altri blocchi se-altrimenti.

Prova. Anche se non sei convinto fino in fondo che possa funzionare, lancia lo stesso il programma che hai scritto; se non funziona, il punto in cui l’omino si blocca, ti suggerirà dove è stato commesso l’errore, e quindi dove fare dei cambiamenti.

In ogni caso, puoi vedere la soluzione di questo gioco Blockly qui.

 

© Olivetti Scuola Digitale 2018