CodyMaze è rilasciato con licenza CC BY-SA da IIS Belluzzi-Fioravanti derivato da Prof. Alessandro Bogliolo – Università di Urbino anch’esso rilasciato con licenza CC BY-SA.
Cosa è CodyMaze
CodyMaze è un gioco da piazza.
CodyMaze è un labirinto virtuale nel mondo reale. Ci si muove su una scacchiera 5 x 5 le cui caselle contengono dei QRcode. Apparentemente la scacchiera è libera, ma grazie ai QRcode mostra labirinti sempre diversi che vengono proposti al giocatore da un’app dedicata. Il giocatore si muove fisicamente sulla scacchiera seguendo le istruzioni dell’app e scansiona il QRcode su cui arriva ad ogni tappa per verificare di aver eseguito correttamente la sequenza di istruzioni. Durante le varie tappe del gioco vengono proposte sequenze di istruzioni di complessità crescente che introducono tutti i concetti base della programmazione diversa di volta in volta e giocata fisicamente. Al termine del gioco l’app rilascia un attestato nominale di completamento dell’attività.
Il terreno di gioco
CodyMaze si gioca su una griglia quadrata, 5×5, sulla quale sono disposti 25 QRcode. I QRcode sono disposti sul pavimento, ad almeno 50cm di distanza l’uno dall’altro. In tal modo il giocatore può muoversi con il proprio corpo all’interno della scacchiera, senza usare pedine. Se la scacchiera fosse effettivamente disegnata a terra ogni QRcode occuperebbe il centro di una casella, ma la presenza dei QRcode che identificano il centro delle caselle rende inessenziale tracciarne i bordi. Quindi la scacchiera può non essere disegnata. Le colonne e le righe della scacchiera sono identificate da lettere e numeri, partendo dall’angolo in alto a sinistra. Ad ogni QRcode è assegnata una posizione identificata da una lettera e da un numero. Inoltre la scacchiera è orientata convenzionalmente in modo che il lato superiore corrisponda al Nord e, di conseguenza, quello inferiore al Sud, quello sinistro all’Ovest e quello destro all’Est. Se il luogo lo consente si consiglia di orientare effettivamente la scacchiera in modo coerente con i punti cardinali.
Le regole del gioco
Obiettivo del gioco
Uscire dal labirinto virtuale seguendo le istruzioni fornite dall’app CodyMaze.
Giocatori
Il gioco può essere giocato da uno o più giocatori. Il limite al numero di giocatori è dato solo dalle dimensioni della scacchiera sulla quale i giocatori devono potersi muovere indipendentemente, eseguendo ciascuno le proprie istruzioni fornite dall’app.
Componenti del gioco
Smartphone o tablet dotato di:
* connessione dati
* fotocamera
* app dedicata CodyMaze
I dispositivi in uso devono essere pari al numero di giocatori che giocano contemporaneamente. Al termine del gioco lo stesso dispositivo può essere usato da un altro giocatore, al quale l’app presenterà un percorso diverso.
Difficoltà
Il giocatore non conosce il percorso, ma riceve istruzioni dall’app e deve interpretarle ed eseguirle correttamente.
Le sequenze di istruzioni fornite dall’app sono di difficoltà crescente, sia per i costrutti che introducono sia per la lunghezza.
Game Play
Il giocatore interagisce con il gioco compiendo le seguenti azioni:
Scansione del QRcode associato alla casella su cui si trova il giocatore (avviare l’app, iniziare la partita, inquadrare con il lettore di codice a barre integrato nell’app il QRcode che si intende scansionare e confermare.
Impostazione della direzione di marcia (selezionare uno dei quattro tasti Nord, Est, Sud, o Ovest quando richiesto dall’app)
Lettura e interpretazione delle istruzioni fornite dall’app (la sintassi è descritta nella sezione game design)
Esecuzione delle istruzioni fornite dall’app (le istruzioni si eseguono fisicamente spostandosi sulla scacchiera a terra).
Game Design (regole)
Inizio del gioco
E’ possibile iniziare una nuova partita solo dopo aver concluso le partite eventualmente in corso.
Se l’app non è pronta ad iniziare una nuova partita perché la precedente è stata interrotta, è possibile riportarlo allo stato iniziale con il comando di reset
In queste condizioni un nuovo gioco viene avviato.
Per iniziare il gioco il giocatore deve scegliere una casella esterna (una delle 16 che compongono il bordo) e scansionare il corrispondente QRcode per notificare all’app la scelta
L’appt indica al giocatore la direzione di marcia e chiede conferma. E’ importante rispettare questa indicazione: ogni successiva istruzione dovrà essere eseguita partendo dalla posizione scelta e dalla direzione indicata dall’app.
Mossa
Ad ogni passo l’app guida il giocatore con un codice preceduto da questa frase “Segui queste indicazioni per risolvere il prossimo passo e scansiona il QRCode all’arrivo“. Il codice segue la sintassi descritta nel seguito alla sezione Sintassi.
Il giocatore deve muoversi sulla scacchiera eseguendo il codice come se fosse un robot, facendo attenzione alla posizione e alla direzione di partenza.
Terminata l’esecuzione il giocatore scansione il QRCode per notificare all’app la posizione che ha raggiunto.
L’app risponde chiedendo “In che direzione stai guardando?” e prensentando i 4 pulsanti per la selezione della direzione.
Il giocatore indica la direzione (senza girarsi rispetto alla posizione assunta al termine dell’esecuzione del codice)
Se l’esecuzione è corretta l’app dice “Benissimo! Hai trovato il punto giusto.” e propone il codice del passo successivo.
Attenzione: è possibile che una mossa non comporti alcuno spostamento. In tal caso, l’esecuzione corretta prevede che venga scansionato nuovamente il QRCode su cui il giocatore si trova.
Mosse sbagliate
Una mossa è sbagliata se viene scansionato il QRCode sbagliato o impostata la direzione sbagliata rispetto a quelli previsti dal codice fornito dall’app.
A fronte di una mossa sbagliata l’app chiede al giocatore di tornare al punto di partenza dell’ultima mossa, di cui fornisce coordinate e direzione. La risposta dell’app è: “Ops! Hai sbagliato! Ritorna alla posizione … guardando verso … e scansiona nuovamente il codice.“
Il giocatore deve tornare nella posizione indicata dall’app, scansionare il QRCode, guardare nella direzione indicata dall’app e selezionarla per conferma quando richiesto.
A questo punto l’app fornisce nuovamente le istruzioni per ripetere la mossa. Non è detto che la nuova mossa sia uguale a quella proposta in precedenza.
Sintassi
Istruzioni elementari. L’app usa le 3 istruzioni elementari rappresentate dalle rispettive iniziali in caratteri minuscoli:
f = forward, da eseguire spostandosi da un QRcode a quello successivo lungo la direzione di marcia
l = left, da eseguire ruotando di 90 gradi in senso antiorario senza cambiare casella
r = right, da eseguire ruotando di 90 gradi in senso orario senza cambiare casella
Ripetizioni. L’app chiede di ripetere più volte un’istruzione o una sequenza di istruzioni indicando il numero di ripetizioni seguito dal codice da ripetere racchiuso tra parentesi graffe:
n{codice} = codice ripetuto n volte
3{f} = fff
2{fl} = flfl
l2{f} = lff
Costrutti nidificati. Le ripetizioni, come i restanti costrutti descritti nel seguito, possono anche essere nidificati. In altre parole, il codice da ripetere può contenere ripetizioni o altri costrutti, come in questi esempi:
2{2{f}} = 2{ff} = ffff
3{2{f}l} = 3{ffl} = fflfflffl
Condizioni. Per esprimere le condizioni a cui è subordinata l’esecuzione di determinate istruzioni, l’app utilizza l’istruzione “if”, racchiudendo la condizione tra parentesi tonde e le istruzioni da eseguire in modo condizionato tra parentesi graffe:
if(condizione){codice} = esegui il codice solo se si verifica la condizione
if(condizione){codice1}else{codice2} = esegui codice1 se si verifica la condizione, altrimenti esegui codice2
Le condizioni utilizzate dall’app sono le seguenti:
path ahead = verificata se nella direzione di marcia c’è almeno una casella su cui spostarsi
path right = verificata se rispetto alla posizione e alla direzione di marcia del giocatore c’è almeno una casella a destra
path left = verificata se rispetto alla posizione e alla direzione di marcia del giocatore c’è almeno una casella a sinistra
star = verificata se nella casella in cui si trova il giocatore, attorno al QRCode, ci sono delle stelle
not star = verificata se nella casella in ci trova il giocatore, attorno al QRCode, non ci sono delle stelle
Ripetizioni condizionate. L’app usa il termine “while” per indicare che una o più istruzioni vanno ripetute finché perdura una condizione. La condizione è espressa tra parentesi tonde, il codice da eseguire tra parentesi graffe:
while(condizione){codice} = esegui il codice finché è verificata la condizione.
Attenzione: nelle ripetizioni e nelle ripetizioni condizionate occorre eseguire tutto il codice interno ad ogni ripetizione, poi occorre verificare nuovamente la condizione di ripetizione (condizione esplicita o numero di ripetizioni) per decidere se eseguirlo di nuovo.
Il certificato
Al termine di tutte le mosse previste l’app manda il seguente messaggio: “Complimenti! Hai completato CodyMaze!“
L’app chiede quindi di digitare il nome che si vuole sul certificato di completamento e facoltativamente il proprio indirizzo di posta elettronica
Il giocatore deve digitare il proprio nome e cognome (o una qualsiasi altro nome, come ad esempio il nome della classe o un elenco di nomi nel caso in cui il gioco sia stato giocato in squadra)
L’app restituisce il certificato nominale di completamento. Oltre al nome indicato dal giocatore ed il tempo impiegato per il gioco, il certificato contiene un identificativo univoco che in futuro potrà essere utilizzato per verificare l’autenticità del certificato.
Se è stato inserito il proprio indirizzo di posta elettronica l’app invia una copia PDF del documento a tale indirizzo.
Scarica i QRCode
I 25 QRcode stampabili sono disponibili in questo archivio.
Per agevolarne la dispozione e l’utilizzo ogni QRcode riporta l’indicazione della posizione e dei punti cardinali. 5 dei QRcode hanno delle stelle alla cui presenza è condizionata l’esecuzione di alcune istruzioni.
Scarica l’app per Android
Per partecipare al CodyMaze è necessario un dispositivo Android con l’app “CodyMaze” installata. Ai partecipanti viene fornito un tablet con l’app preinstallata.
Chi vuole utilizzare il proprio dispositivo può scaricare ed installare l’app da questo link o inquandrando il QRCode.
L’app non è distribuita sul google store quindi per poterla installare è necessario abilitare l’installazione da fonti sconosciute.
Scarica ed installa l’app
Scansiona ed installa l’app
Scarica i sorgenti
I sorgenti di Belluzzi CodyMaze sono rilasciati con licenza CC-BY-SA e sono scaricabili dal repository:
https://github.com/infobelluzzi/codymaze e modificabili con la stessa licenza.