OBIETTIVO: creare un gioco in cui due giocatori premono rispettivamente e contemporaneamente i pulsanti A e B. Il gioco parte visualizzando per un numero casuale di secondi una immagine, dopo di che i due giocatori dovranno premere il pulsante, vince il più veloce.
Esercizi di approfondimento
Prima di visualizzare l'immagine il gioco deve rimanere in attesa per un numero casuale di secondi.
Trascinate dalla sezione Basic il blocco pause (ms) 100 all'interno dell'istruzione forever.
Aggiungere istruzione pick random 0 to 10 e sostituire il valore predefinito 0 con 1 ed il valore predefinito 10 con 5000. Con questa istruzione verrà generata una pausa casuale tra 1 e 5 secondi.
Per dare il via ai giocatori e quindi premere il pulsante, inserire un’immagine stilizzata di un pulsante.
Verificare il programma con il simulatore
Facciamo in modo che dopo un secondo l’immagine scompaia dal display.
Aggiungiamo le istruzioni che permettono di attendere fino a quando
vengono premuti i pulsanti.
Dalla sezione Loop aggiungiamo l’istruzione while.
Trascinate dalla sezione Logic l'operatore logico and ed inseritelo all'interno della condizione del while.
L’operatore logico and restituisce un valore VERO se entrambi gli operandi sono veri, in tutti gli altri casi restituisce il valore FALSO.
Costruiamo la condizione: “FINCHE’ (while) [A NON (not) è premuto] E (and) [B NON (not) è premuto] FAI (do) [PAUSA PER 20 ms]”. Dalla sezione Logic trascinare l’operatore logico not
Verificare il programma con il simulatore
Realizziamo il codice che mostra chi ha premuto prima il pulsante. Se il pulsante A è stato premuto, bisognerà assegnare il punteggio al giocatore A. Per fare questo aggiungiamo un'istruzione dopo il while e sostituite true con on button A pressed
All’interno del corpo dell’istruzione if , come argomento del then inseriamo un’istruzione show leds con il disegno di una freccia che punta verso il pulsante A:
Procediamo allo stesso modo per il pulsante B.
Fate click su Download per trasferire il programma sul micro:bit.
.
Utilizzate due variabili giocatoreA e giocatoreB per mantenere traccia del punteggio dei due
giocatori
Suggerimento
Bisogna inizializzare entrambi i punteggi a '0' all'inizio del gioco, all’interno dell'istruzione
on start :
Aggiungete 1 ogni volta che un giocatore vince.