Italian App quiz

MAX_SV

Active Member
Licensed User
Devo realizzare un app che proponga delle domande a risposta multipla ... Come mi consigliate di gestirla?
Grazie
 

androidappl

Active Member
Licensed User
Ciao,

Io farei come ha proposto "maxware", quindi tabella A dove metti ID_Domande aggiungerei soltanto un campo con la risposta corretta.
mentre nella tabella b lo stesso ID_Domande chiamato ID_Risposte per esempio e tutti i casi possibili.

Quindi hai:

TABELLA A{DOMANDE}
id_dom Domanda Risp_Corretta

0001 Domanda1 ciccio

TABELLA B{RISPOSTE}
id_risp risp1 risp2 risp3

0001 sono risp 1 sono risp 2 ciccio
 

MAX_SV

Active Member
Licensed User
Grazie per i consigli e scusate il ritardo .... sono tornato in Italia e quindi mi tocca il "giro parenti" :)
 

MAX_SV

Active Member
Licensed User
Mi sa che è ora che imparo a gestire i db anche in Android :-(
 

MAX_SV

Active Member
Licensed User
in net li gestisco tranquillamente devo solo capire come crearmi il db in locale per popolarlo da tastiera ....
pensavo per il evitare il db di crearmi delle liste con i dati direttamente in app :-( comunque mi stò informando sul forum :confused:
 

LucaMs

Expert
Licensed User
Quindi vuoi evitare di salvare dati, sia in un db che in alcuni file?

Se è così ti consiglierei di usare le Map (magari con qualche Type - le classi sono più utili, ma i Type più sbrigativi).

Crei un tipo per ogni domanda, ad esempio, poi ogni domanda l'aggiungi ad una Map.

E' solo uno... spuntino :p
 

MAX_SV

Active Member
Licensed User
L'appetito vien mangiando do un occhio alle map ...
la mia idea originaria era un file txt da leggere all'avvio (più semplice da aggiornare ) dove mettevo su una linea domanda risposte possibili e in coda quella corretta quindi
- leggo file
- splitto linea separatore |
- popolo la lista in un ciclo
- propongo e verifico
 

MAX_SV

Active Member
Licensed User
per la serie a volte ritornano .....
come prima cosa tanti cari auguri a tutti i frequentatori del forum, adesso arrivo con la domanda dell'ultimo dell'anno e vi giuro che per il 2014 è l'ultima ;).
Dopo aver preparato tutto l'ambaradn per il programma (e stranamente funziona alla grande) mi sorge un piccolo problema :
come faccio a proporre le domande in modo casuale senza che queste si ripropongano? per ora ho risolto con un rnd ...

Danke
 

MAX_SV

Active Member
Licensed User
Ciao sempre presente sul forum ....
ci ho pensato ma non uso un db leggo i dati da un file txt, avevo pensato di crearmi una list da popolare con il numero di domanda già proposta e ogni volta fare un ciclo per verificarne la presenza ... speravo in un qualcosa di più rapido
 

LucaMs

Expert
Licensed User
Ammetto che non ho molta voglia di rileggere tutto!

Cmq, se hai una lista di domande, le quali possono essere lette tramite un indice (ad esempio se le domande sono proprio in un oggetto List e quindi si possono ottenere tramite MyList.Get(index)) ti basterà creare una List contenente gli indici (che so, mille domande, lstIndici.Add(0), lstIndici.Add(2)... lstIndici.Add(999)).
Quindi:

IndiceDomandaScelta = Rnd(0, lstIndici.Size)
lstDomande.Get(IndiceDomandaScelta)
lstIndici.RemoveAt(IndiceDomandaScelta)
 

MAX_SV

Active Member
Licensed User
si semplice e fattibile mi stavo sbattendo come un riccio quando con tre righe risolvo tutto

grazie 1000
 

LucaMs

Expert
Licensed User
Uhm... forse non era corretto.

B4X:
IndiceDomandaScelta = Rnd(0, lstIndici.Size)
lstDomande.Get(IndiceDomandaScelta)
lstIndici.RemoveAt(lstIndici(IndexOf(IndiceDomandaScelta)))
perché dopo la rimozione, ad esempio IndiceDomandaScelta vale 99 e si rimuove il valore di lstIndici alla posizione 99, la posizione 99 conterrà il successivo valore, che dovrebbe essere 100 ma dopo varie rimozioni può avere qualunque numero.
 

MAX_SV

Active Member
Licensed User
Ho provato, leggo ogni volta il size della lista e genero il numero rnd, dopo aver proposto la domanda cancella l'indice letto
l'unico controllo che devo fare è quando raggiungo il fine lista ... per ora tutto ok dopo vari test
 
Top