Cerca con Google

Translate

7 luglio 2014

Tutorial 8 - Creazione gioco Android Quiz Calcistico - Parte 3


Parte 1 Tutorial Android Quiz Calcio - Parte 2 Tutorial Android Quiz Calcio

Nella terza e "quasi..." ultima parte del nostro tutorial per la realizzazione di un quiz calcistico per Android usando MIT App Inventor andiamo a vedere come programmare la logica di controllo sulla correttezza della risposta inserita dal giocatore.

L'evento da programmare è ovviamente quello relativo alla pressione del tasto "Ok" (se ricordate nel design editor il suo nome è "Bn_Risposta")

Quindi il blocco da programmare sarà quello che trovate cliccando nella palette di sinistra l'elemento "Bn_Risposta" e poi selezionando e trascinando "When Bn_Risposta.Click" nel Blocks Editor:



Usiamo una condizione "if-then-else" per eseguire due gruppi di operazioni distinte, una se la risposta data dal giocatore è corretta l'altra se la risposta è errata.
La condizione "If" ovvero il confronto da fare è quello relativo alla correttezza della risposta data, dobbiamo confrontare il testo digitato dall'utente con la risposta esatta corrispondente.

Con "select list item" scegliamo dalla lista "Lista_Risposte" la risposta esatta relativa all'indice attuale (quindi se è la prima domanda ovvero l'indice ha valore 1 la risposta esatta per la domanda 1 è "Gianni Rivera" e così via...)
Dalla palette "Math" prendo l'operatore di uguaglianza che confronta appunto la risposta del giocatore (che è memorizzata nella textBox "TxtB_Risposta.Text" con quella esatta presa dalla lista.

Se il confronto da esito positivo verrà eseguito il codice nel blocco "then",
dove inseriremo il codice per aggiornare la "Lbl_RispostaEsatta" con un messaggio di incoraggiamento (nel nostro caso sarà "Risposta Esatta!!!") e dove andremo ad incrementare di 1 la variabile punteggio.

Se il confronto non da esito positivo verrà eseguito il codice nel blocco "else",
in questo caso non dobbiamo incrementare il punteggio ma solamente avvisare il giocatore che ha inserito la risposta sbagliata.

Come ulteriore miglioramento a questo algoritmo possiamo usare nel confronto la funzione "upcase" che "trasforma" in maiuscolo tutto il testo inserito dall'utente ed anche il testo che abbiamo memorizzato nella lista delle risposte esatte, facendo questo il giocatore potrà rispondere "gianni rivera" oppure "GIANNI RIVERA" e la risposta verrà comunque considerata esatta... (suggerimento, provate a guardare anche la funzione "trim" per togliere eventuali spazi extra...)

Se provate l'app vedrete che è "scomodo" il fatto che la tastiera non scompare dopo che avete premuto il tasto Ok, quindi nascondendo di fatto l'esito della risposta al vostro quiz.
Per risolvere la cosa possiamo semplicemente chiamare il metodo .HideKeyboard che nasconde appunto la tastiera a schermo, il blocco finale quindi sarà questo:


Provate a far girare l'app creata fino a questo momento, apportate i vostri miglioramenti se volete (tipo aggiungere più domande, aggiungere effetti sonori, etc...) e buon App Inventing a tutti!!!

Come sempre qui sotto trovate il video tutorial relativo, consiglio la visione per fissare meglio i concetti visti finora.

Considerato il buon feedback ricevuto da questa serie di video su YouTube e considerato il fatto che in molti mi avete chiesto come sia possibile aggiungere una schermata di GameOver in cui viene visualizzato il punteggio realizzato, ho deciso di creare un ulteriore video tutorial che spiega come inserire questi ritocchi finali alla nostra app Visto che si trattano argomenti un pò più avanzati, preferisco lasciarvi solo il video e non "tediarvi" con troppe descrizioni testuali, buona visione!!!


Potete scaricare il sorgente di questa app cliccando qui sotto App Android Quiz Calcio  App Android Quiz Calcio (con GameOver) vi ricordo che all'interno del file sorgente (.aia) ci sono anche tutti i "Media" dell'applicazione ovvero in questo caso i file jpg con le immagini usate in questo gioco.

Per commenti domande e suggerimenti usate le apposite funzioni qui sotto o i commenti su YouTube, grazie!!!



1 commento: