CodyRoby è un metodo fai-da-te di programmazione unplugged (senza computer). Le istruzioni sono carte da gioco che contengono semplici simboli associati a tre azioni elementari: vai avanti, girati a sinistra, girati a destra. Ogni giocatore veste i panni di Cody e usa le carte per dare istruzioni a Roby, rappresentato da una pedina da muovere sulla scacchiera.
AVANTI
Gira a SINISTRA
Gira a DESTRA
RIPETI
SE
ALTRIMENTI
Le carte vanno posizionate una a fianco dell'altra al fine di costruire il programma che permette al nostro Roby di muoversi.
Bisogna ricordare che il programma va scritto dal punto di vista di Roby, la destra e la sinistra sono quelle di robi non le nostre.
Roby si muove su una scacchiera di cinque per cinque sulle quali è tracciato un percorso.
Il percorso è definito dai tasselli percorso che sono appunto le caselle grigie.
Infine esistono le estensioni:
UNITA' DI CONTEGGIO: da appoggiare sopra la carta RIPETI per indicare il numero di ripetizioni desiderate;
SENSORI: da inserire davanti a sinistra o a destra di ROBY per indicare di continuare a ripetere un ciclo fino a che non trova un ostacolo;
TARGET: da inserire nella scacchiera e sulla carta RIPETI per indicare la condizione di terminazione
Esempio semplice così per cominciare.
Roby deve percorrere il percorso tracciato dai tasselli percorso. In questo caso deve avanzare di due caselle.
Nell'angolo in alto a destra vedete un esempio di codice a blocchi. Ad esempio: https://programmailfuturo.it/come/primaria/corso-f/introduzione
Complichiamo un po' l'esercizio precedente facendo ruotare Roby.
Dobbiamo ricordarci che il punto di vista è quello di Roby quindi lui gira alla sua destra. Altra cosa lo so che quando tu hai visto il percorso hai pensato mi giro intanto che avanzo.... Roby invece fa una cosa alla volta prima si gira e poi avanza quindi ricordati anche l'ultima freccia Avanti.
Andiamo avanti.
Usiamo ora una carta speciale, questa carta ripete l'azione che la segue per il numero di volte indicato dalla quantità di UNITA' DI CONTEGGIO posti sopra la carta azzurra.
MA COME FACCIAMO A SAPERE QUALI AZIONI SONO DA RIPETERE? In questo caso è facile ce n'è solo una, ma se fossero di più?
Dobbiamo fare attenzione alle posizioni delle carte.
Quando le carte sono tutte allo stessa altezza hanno tutte lo stesso livello (vedi esempi precedenti), quando invece una carta è più in basso significa che è dipendente, fa parte (indentazione), della carta che lo precede. Per indicare questa "appartenenza" si usano i triangolini posti sui lati delle carte, potete vedere infatti che è allineata una tacca sotto.
In questo caso quindi abbiamo scritto un codice che prevede un ciclo di 4 ripetizioni.
Ecco un caso più complesso.
Sai distinguere le carte comprese dai cicli dalle altre?
Esatto le carte verdi fanno parte delle due carte azzurre (descrivono cosa gare nel ciclo) quella Gialla invece è al di fuori dei cicli.
In questo caso vediamo che il ciclo comprende più azioni.
Ricorda, un ciclo va ripetuto quante volte quante le unità poste di conteggio sulla carta
Qui inseriamo un nuovo oggetto: il TARGET. La funzione diventa quindi RIPETI FINO A.
Roby ripeterà lo stesso movimento fino a quando raggiungerà il suo obiettivo.
Guardate un secondo il riquadro in alto a destra dell'immagine qui sotto: vedete che il nostro zombi deve andare avanti e poi girare a sinistra perchè se girasse a destra sarebbe mangiato dalla pianta carnivora.
Come facciamo a fare fare a Roby questo percorso? Si aggiunge la carta SE. In questo caseo si dice: vai sempre dritto fino al TARGET ma se hai strada libera a sinistra (per dare questo comando posiziono il SENSORE sulla sinistra della carta SE), gira a sinistra!
Quindi lui andrà dritto di una casella, controllerà la sinistra che non sarà libera quindi ripeterà il ciclo, la terza volta si troverà la sinistra libera e girerà a sinistra e poi ripeterà di nuovo il ciclo, la sua sinistra non sarà più libera e quindi continuerà fino al Target.
In questo esempio cediamo l'uso della carta ALTRIMENTI.
Roby procederà in questo modo:
attiverà un ciclo che SE davanti è libero, farà un passo in avanti, ALTRIMENTI girerà a sinistra
e poi ricomincerà da capo
In questo esempio cediamo l'uso della carta ALTRIMENTI.
Roby procederà in questo modo:
attiverà un ciclo che SE davanti è libero, farà un passo in avanti, ALTRIMENTI girerà a sinistra
e poi ricomincerà da capo
A turno gli sfidanti posizionano il proprio Roby e un tassello percorso che farà da ostacolo. Obiettivo raggiungere il Roby dell'avversario. All'inizio si pescano 5 carte e si scelgono le carte che si vogliono giocare (muovendo Roby) che vengono poi scartate e se ne pescano altre. Le carte possono essere scartate anche tutte e ripescate
Si pescano tre carte e si posiziona il proprio Roby nell'angolo opposto all'avversario. A turno si gioca una carta di quelle che si hanno in mano e si fa avanzare Roby, poi si ripesca. Ogni casella che Roby si lascia alle spalle viene occupata con un tassello percorso. Vince chi fa il serpente più lungo. Il gioco finisce se Roby è bloccato o se non si hanno in mano carte che permettono movimenti su caselle libere.
Con le stesse regole del Serpente lo scopo in questo caso è far muovere Roby in modo che passi su ogni casella della scacchiera riempiendo ogni spazio.
Una squadra nel tempo massimo di un minuto inventa un percorso, posiziona sulla scacchiera ROBY e il Target. Poi posiziona il codice fatto con le carte.
La seconda squadra fa eseguire a Roby il percorso e verifica il raggiungimento del Target.
! punto alla squadra che ha progettato il codice se il percorso è giusto, ! punto ai controllori se il percorso è errato e si ricomincia.