Cerca con Google

Translate

7 luglio 2014

Tutorial 8 - Creazione gioco Android Quiz Calcistico - Parte 2


Leggi Parte 1 Tutorial Android Quiz Calcio

Continuiamo a vedere la logica di funzionamento della nostra app, proseguendo la programmazione per la parte relativa al "Blocks Editor"

Per prima cosa vogliamo inizializzare la nostra app alla sua apertura, per fare questo usiamo l'evento "Screen1.Initialize" che viene eseguito appunto non appena l'app viene lanciata dal nostro utente.

Impostiamo la label delle domande "Lbl_Domanda" con la prima domanda della lista creata in precedenza, per farlo usiamo il metodo "set Lbl_Domanda.text to"
Quindi usando dalla palette "list" la funzione per la selezione di un elemento andiamo ad estrarre il primo valore dalla "Lista_Domande"

La funzione in questione si chiama "select list item" e richiede due parametri:
il primo parametro è la lista su cui operiamo,
la seconda è l'indice ovvero il valore numerico che mi indica quale elemento della lista voglio prendere
Quindi nel nostro caso l'indice sarà semplicemente il valore 1 per porre la prima domanda:
Programmiamo ora la logica di funzionamento del pulsante "Prossima", l'evento da programmare è "when Bn_Successiva.Click" che indica cosa fare alla pressione del button relativo.

In sintesi quando questo pulsante viene premuto vogliamo porre all'utente la domanda successiva, quindi vogliamo cambiare la domanda visualizzata e l'immagine visualizzata ed anche visualizzare il punteggio aggiornato (la gestione del punteggio non viene fatta ora ma alla pressione del pulsante "Ok")

Vediamo i blocchi da utilizzare:

Per prima cosa dobbiamo incrementare la variabile globale "Indice" che ci serve per posizionarci sugli elementi corretti delle nostre liste create in precedenza.
Incrementiamo quindi l'indice usando la funzione matematica "+" , aggiungiamo semplicemente 1 al valore attuale del nostro indice.
Poi impostiamo i valori di Lbl_Domanda e Img_Domanda con il nuovo indice, per farlo usiamo "select list item" dove la lista è quella che ci interessa a seconda di cosa vogliamo settare e l'indice è il valore appena incrementato di 1.
Per resettare la domanda precedente, svuoto semplicemente la label della risposta esatta (Lbl_RispostaEsatta) ed anche la textbox dove l'utente ha inserito la risposta (TxtB_Risposta)
Aggiorniamo anche il punteggio usando la funzione testuale "join" che non fa altro che creare una stringa di testo con i vari elementi che inseriamo in questa funzione.
Nel nostro caso quindi uniamo la stringa fissa "Punteggio = " con il valore attuale della variabile "punteggio"

Se andiamo ora a provare l'app funziona tutto a dovere finchè non premiamo per la quarta volta il pulsante "Prossima", se lo facciamo ci viene visualizzato questo errore:


In pratica ci dice che la funzione "select list item" non riesce a prelevare il quarto valore dalla lista perchè la lunghezza della lista (ovvero il numero dei suoi elementi) è pari a 3
(vedrete che vi capiterà spesso programmando con MIT App Inventor di imbattervi in questo errore!!!)

Questo accade perchè quando premo "Prossima" la quarta volta l'indice assume il valore 4 ma la mia lista ha solo 3 elementi...
Per correggere l'errore bisogna inserire un controllo "if-then" affinchè l'indice non sia mai superiore a 3.
Possiamo usare "lenght of list" per farci dire quanti elementi ha la nostra lista di domande e se il nostro indice assume un valore superiore alla lunghezza massima della lista reimpostiamo l'indice al valore iniziale ovvero 1.
Già che ci siamo (in pratica abbiamo finito di porre al giocatore tutte e tre le domande) possiamo anche resettare il punteggio e riportarlo a 0.

Nella terza parte del tutorial andremo a vedere come programmare il pulsante per la verifica della risposta inserita ed andremo ad ultimare la nostra app Android di un quiz a tema calcistico!

Qui sotto trovate il video tutorial relativo, vi consiglio di guardarlo per familiarizzare ancora meglio i concetti appena esposti:


Ora possiamo proseguire alla Parte 3 del Tutorial cliccando
Parte 3 Tutorial Android Quiz Calcio

Potete scaricare il codice sorgente dell'app cliccando qui:
App Android Quiz Calcio

1 commento:

  1. mi esce lerrore che praticamente : ( the operation index in list cannot accept the arguments: , [["pallonedoro.jpg "e le altre immagini]][2] bad arguments to index in list) cosa dovrei fare ??

    RispondiElimina