Italian Consigli per nuovo progetto

Schakalaka

Member
Licensed User
Buon giorno a tutti.
Vorrei chiedere ai piu esperti qualche consiglio circa un mio nuovo progetto.
Sono nuovo nella programmazione e mi sono avvicinato grazie ad un corso su Udemy.

L' applicazione è un quiz, domanda e 4 risposte possibili.
Vorrei far in modo, di rendere le domande sempre casuali ed in automatico.

Per esempio, parliamo di animali e loro classi di appartenenza
(classi: Mammiferi, rettili, uccelli, anfibi) con relazione uno a n animali.

Questo esempio si può semplificare, anche con una relazione uno a uno..

Volendo proseguire, vi sarebbero due modalità di gioco:
"maggior numero di domande risposte in es.:1 minuto"
e qui, come faccio a fare una progressbar che va all' indietro scalando il tempo? (e per ogni risp corretta, +3s ed errata -1s)

seconda modalità simile,
3 vite, 7 secondi a risposta, fino alla fine delle vite.


Oltre alla logica, avrei bisogno del codice, o frammenti..


Grazie e Buona Pasqua
 

udg

Expert
Licensed User
Pensando un po' più in grande, potresti progettare l'app in modo che la versione base abbia a bordo una ventina di domande e che si possano scaricare da un server, a pagamento, altri blocchi da 20/50 domande. Anche la gestione di livelli (se rispondo correttamente ad una certa percentuale di domande vengo promosso al livello successivo e ricevo un blocco di domande adeguate al nuovo livello) non sarebbe male.

Per monetizzare, cerca "in-app billig" (Google si tiene il 30%) e "interstitials" (pubblicità che l'utente dovrà sorbirsi alla conclusione di un passaggio importante, come promozione ad un nuovo livello, nuovo record personale, etc).

ps: molti, se non tutti, i pezzi che ti servono per assemblare l'app sono già presenti sul Forum; si tratta di avere la pazienza di cercarli e di testarne un po' di quelli simili tra loro e poi aggiungere la logica unica al gioco che vorresti creare.
 

Schakalaka

Member
Licensed User
Ciao, e grazie per le risposte , in tempi brevissimi nonostante pasqua..

rispondendo a LucaMs, direi che Sq lite, lo conosco ancora meno di b4a.

magari è una bestemmia, ma pensavo di utilizzare un file txt così organizzato:

Mammiferi|orso|cane
Rettili|coccodrillo|serpente|ecc|ecc...|n rettili
#classe|#membro1|#membro2|ecc...

e al programma dico:
per generare l domanda: scegli una riga a caso e prendi il un elemento a caso, tranne il primo
mentre per generare le 4 risposte: prendi il primo membro della riga scelta per la domanda, e altri 3 primi membri a caso tra le altre righe.

Rispondendo invece a udg, che ringrazio;
gli acquisti in-app sono attivabili solo per chi ha un conto commerciale di google, cosa che non ho.
Le domande di questa applicazione è sempre una.

"Quale di questi animali appartiene a questa classe?"

Oppure

"L' animale XYZ a quale classe appartiene?"

Se vogliamo, è sempre della stessa difficoltà. Il livello, sta invece nella cultura dell ' utilizzatore: magari sa a che classe appartiene l' orso, ma se chiedi del "Rinolofo euriale", non l 'ha mai sentito. #passami il concetto.

Per l' avanzamento,
ho pensato a due tipi:

1) maggior numero di domande nel minor tempo
tre difficoltà facile medio difficile. quel che cambia è il tempo a disposizione

2) tre vite e maggior numero di domande possibile
che può diventare (facile, medio, difficile)
a seconda del tempo per domanda (10s,7s,5s)

per monetizzare banner e popup a tutto schermo.


Grazie ancora a tutti.
 

Schakalaka

Member
Licensed User
ciao a tutti!!

sono riuscito a scrivere questo codice per fare quel che volevo.
B4X:
    list1 = File.ReadList(File.Dirassets, "Nazioni.txt")
   
        list2 = File.ReadList(File.Dirassets, "capitali.txt")

    qresult = list1.Get(Rnd(0,197))' seleziona a caso un nome dalla lista

    qresultint = list1.IndexOf(qresult) 'restituisce il numero di riga del nome di qresult
'    If langSpinner.SelectedItem = "Italiano" Then
    SetLabelSize(questionLabel,"Quale è la CAPITALE della " & qresult & "??")
    Log("Nazione:" & qresult)
'    Else if langSpinner.SelectedItem = "English" Then
'        SetLabelSize(questionLabel,"What is the CAPITAL of " & qresult & "??")
'    Else 
'        SetLabelSize(questionLabel,"Quale è la CAPITALE della " & qresult & "??")
'    End If
    Answare1Int = qresultint 'inserisco il numero di riga della domanda nel file delle risposte poddibili
    answareString1 = list2.Get(Answare1Int)
    Log("Risposta1:" & answareString1)

    Answare2Int = Rnd(0,197) 'genero altri numeri casulali per le altre risposte
    answareString2 = list2.Get(Answare2Int)
    Log(Answare2Int)
    Log("Risposta2:" & answareString2)

    Answare3Int = Rnd(0,197)
    answareString3 = list2.Get(Answare3Int)
    Log(Answare3Int)
    Log("Risposta3:" & answareString3)

    Answare4Int = Rnd(0,197)
    answareString4 = list2.Get(Answare4Int)
    Log(Answare4Int)
    Log("Risposta4:" & answareString4)

    allAnsware = Array As Int(Answare1Int, Answare2Int,Answare3Int,Answare4Int)
   
    list3 = allAnsware

'-------------------------------------------------------------------------------------------------------



||||||||||||||||||||||||||mescolaNazioni|||||||||||||||||||||||||||||||
        ShuffleList(list3)
        Log("===== PlayList (shuffle) =========")
        For i = 0 To list3.Size-1
            list3.Get(i)
            Log(list3.Get(i))
        Next
    Log("=================================")

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

    Dim listindex0 As Int
    Dim listindex1 As Int
    Dim listindex2  As Int
    Dim listindex3 As Int
   
    listindex0 = list3.Get(0)
    listindex1 = list3.Get(1)
    listindex2 = list3.Get(2)
    listindex3 = list3.Get(3)
    Log(listindex2)
   
    answare1 = list2.Get(listindex0)
    Answare2 =list2.Get(listindex1)
    Answare3 =list2.Get(listindex2)
    Answare4 =list2.Get(listindex3)
    If answare1 <> Answare2 And answare1 <> Answare3 And answare1 <> Answare4 _ 
        And Answare2 <> answare1 And Answare2 <> Answare3 And Answare2<> Answare4 _
        And Answare3 <> Answare2 And Answare3 <> answare1 And Answare3<> Answare4 And Answare4 <> answare1 And Answare4 <> Answare2 And Answare4 <> Answare3 Then
    SetButtonTextSize(answare1Button,answare1)
    SetButtonTextSize(answare2Button,Answare2)
    SetButtonTextSize(answare3Button,Answare3)
    SetButtonTextSize(answare4Button,Answare4)
   
    Else

        trovaNazioni
    End If
Vorrei avere un parere esperto, ed eventuale un modo alternativo e più performante per fare le stesse cose..

Ho un problema con le lettere accentate, che non vengono visualizzate correttamente.
Come posso risolvere?

Grazie
 
Top