Italian Valutazione app e miglioramenti

Schakalaka

Active Member
Licensed User
Ciao a tutti
volevo presentare la mia app pubblicata sul play store.

E' un quiz di geografia sulle capitali del mondo.
per chi volesse farmi sapere cosa ne pensa, questo è il link:
https://play.google.com/store/apps/details?id=eu.beraldogiuliano.worldcapitls


Vorrei aggiungere la modalità per abbinare le regioni d' italia, ma avrei bisogno di leggere un file strutturato così:

regione1, città1,citta2,citta3, cittaN
regione2,città1,citta2,citta3, citta4. cittaN
regione3,città1,citta2,citta3, citta4, citta5,cittaN

adesso uso dei file txt, ma forse c'è qualcosa di più "performante" e comunque semplice....

Avrei anche bisogno di qualcuno che dia un' occhiata al codice che ho scritto, anche se fuziona perfettamente, potrebbe migliorare in prestazioni....

Grazie!
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
E' un quiz di geografia sulle capitali del mondo.
Pensare che le conoscevo tutte!
Oltre al fatto che ne avrò sicuramente dimenticate parecchie, alcune sono anche cambiate, da quando "studiavo".

Vorrei aggiungere la modalità per abbinare le regioni d' italia
Anche qui, conoscevo tutte le provincie; poi hanno aggiunto akragas, casal pusterlengo, ... :p

adesso uso dei file txt, ma forse c'è qualcosa di più "performante" e comunque semplice....
Se funziona, vale la pena cambiare?
Inoltre, dipende da come le rappresenti nel progetto, ovvero come e dove le memorizzi e come e cosa devi poi cercare.
L'ideale, come sempre, è un db, sebbene non sia affatto la cosa più semplice.

Ripeto: tutto ok col file txt? Quindi lascia così ;)
 

LucaMs

Expert
Licensed User
Longtime User
upload_2018-5-1_20-9-3.png


Gli avrei risposto: "Prendi del Plasil, prima di usarla"

:p
 

Sagenut

Expert
Licensed User
Longtime User
Intanto ti faccio i miei Complimenti per aver pubblicato qualcosa.
Migliorie possibili:
- Aggiungere qualche effetto audio ed eventualmente una musichina di accompagnamento
- Fare in modo che non venga ripetuta la stessa domanda in una sessione. Ora succede.
Non ti curare troppo di certi commenti eccessivamente negativi.
Tanto leggo le stesse cose anche in applicazioni ben più complesse e importanti.
La gente pensa che le App nascano la notte come i funghi.
 

Schakalaka

Active Member
Licensed User
ciao,
grazie dei consigli!!


Aggiungere qualche effetto audio ed eventualmente una musichina di accompagnamento
ci sto già lavorando.

Fare in modo che non venga ripetuta la stessa domanda in una sessione. Ora succede.
Non so come si fà ad adattare il codice a questo

Non ti curare troppo di certi commenti eccessivamente negativi.
Tanto leggo le stesse cose anche in applicazioni ben più complesse e importanti.
La gente pensa che le App nascano la notte come i funghi.
Hai perfettamente ragione

Tienila installata, così vedi anche i prossimi aggiornamenti (molto frequenti):D
 

Sagenut

Expert
Licensed User
Longtime User
Per non ripetere la stessa domanda puoi creare una lista non visibile o un array, ad ogni nuova domanda controlli se la nazione che è stata scelta è già in lista e nel caso esegui di nuovo la selezione di una nuova domanda.
 

Schakalaka

Active Member
Licensed User
bene, vedo di pensare a qual cosa..

ma, vorrei risolvere questo problemuccio..
il codice che uso per ridimensionare il testo è:
B4X:
ub SetButtonTextSize(lbl As Button, txt As String)
    Dim dt As Float
    Dim limit = 0.5 As Float
     'Dim limit = 1 As Float
    Dim h As Int
  
    lbl.Text = txt
    lbl.TextSize = 72
    dt = lbl.TextSize
    h = Main.stu.MeasureMultilineTextHeight(lbl, txt)
    Do While dt > limit Or h > lbl.Height
        dt = dt / 2
        h = Main.stu.MeasureMultilineTextHeight(lbl, txt)
        If h > lbl.Height Then
            lbl.TextSize = lbl.TextSize - dt
            lbl.TextSize = lbl.TextSize -3 'ho aggiunto questo meno 2 se no era grande e andava fuori dal bottone
        Else
            lbl.TextSize = lbl.TextSize + dt
            lbl.TextSize = lbl.TextSize -2  'ho aggiunto questo meno 2 se no era grande e andava fuori dal bottone
        End If
    Loop
End Sub
grazie!
 

Attachments

  • Screenshot_2018-05-02-22-21-29[1].png
    Screenshot_2018-05-02-22-21-29[1].png
    368.5 KB · Views: 195

Sagenut

Expert
Licensed User
Longtime User
Eventualmente puoi provare a dividere le città con più parole su due righe.
 

LucaMs

Expert
Licensed User
Longtime User
Per non ripetere la stessa domanda puoi creare una lista non visibile o un array, ad ogni nuova domanda controlli se la nazione che è stata scelta è già in lista e nel caso esegui di nuovo la selezione di una nuova domanda.
Tanto per fare il professore e perché in alcuni casi non si può sprecare tempo nel ritentare se un determinato elemento sia già stato usato...
Uno dei metodi più usati è usare un array ed un "contatore". Inizialmente il contatore è impostato sulla lunghezza totale dell'array; poi, dopo ogni "esecuzione" (domanda estratta), si sposta in fondo all'array l'elemento estratto e si diminuisce di 1 il contatore.

Valore(0) = 12
Valore(1) = 23
Valore(2) = 34
Valore(3) = 45
Valore(4) = 56
Valore(5) = 67
Valore(6) = 78
Valore(7) = 89

Contatore = 8 - 8 elementi nell'array.
Scelto = Rnd(0, Contatore) - mettiamo che valga 3. Si scambiano di posto
Valore(Scelto) e Valore(Contatore-1), che è l'ultimo della lista.
Diventano:
upload_2018-5-2_23-28-21.png


Questo procedimento verrà eseguito fino a che Contatore varrà 1 e con la Rnd si preleverà il primo elemento dell'array, ovvero fine delle domande.
Per ricominciare basterà reimpostare Contatore a 8.


Per scambiare di posto i due elementi dell'array (nell'esempio sopra il 3 ed il 7) si usa un metodo che in inglese si chiama Swap:
Dim Temporaneo As Int = Valore(Scelto)
Valore(Scelto) = Valore(Contatore)
Valore(Contatore) = Temporaneo

Sembra complicato ma è semplicissimo ed efficace.
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------

Dopo tutta 'sta roba... è ancora più semplice usare le List :D:D:D

B4X:
Dim lstValore As List
Dim Contatore, Scelto, Temporaneo As Int
Contatore = 8
' si inizializza e riempie lstValore con Contatore elementi.
Scelto = Rnd(0, Contatore)
Temporaneo = lstValore.Get(Scelto)
lstValore.RemoveAt(Scelto)
lstValore.Add(Temporaneo)
Contatore = Contatore - 1
' si torna alla riga di "randomizzazione" (si usa un ciclo).

------------------------------------------------------------------------------


Morale della favola: abbandonate gli Array ed usate le List ;)
 

Sagenut

Expert
Licensed User
Longtime User
Eravamo rimasti incantati dalla spiegazione con tanto di figure.
 

LucaMs

Expert
Licensed User
Longtime User
Eravamo rimasti incantati dalla spiegazione con tanto di figure.
Vedi? Avrei dovuto fare l'insegnante.

Avendo poca memoria, non ricordavo che da bambino fosse proprio questa la mia intenzione. Quando in TV vedo chiederei ai bambini cosa vorrebero fare da grandi, mi domando: "Ma io non avevo sogni, da bambino?". No, è che non ho memoria (e non perché siano passati troppi decenni dalla mia infanzia). Va beh, poi c'è il fatto che dovrei fare anni di psicoterapia per sapere se io da bambino/ragazzo fossi cosciente :p:(

A che serve questo post?

Che domanda; a che servono quasi tutti gli altri miei post? Solo a farmi perdere tempo (e magari farvi pure sghignazzare alla mie spalle :p).
 

LucaMs

Expert
Licensed User
Longtime User
e io devo darti del fetentone :p
Ovviamente è detto in senso amichevole e scherzoso, eh.


Bene, sappiate che la famosa, anzi famigerata, Penelope (Penny per gli amici) non è un'app (+ server) così complicata da sviluppare.
Il gioco in sé, in particolare, è molto semplice, come lo è il Poker Texas hold'em, in cui ogni giocatore ha solo 2 carte in mano, vengono poste 3 carte in tavola e successivamente - eventualmente - altre due. Qualche giro di rilanci, confronto dei punteggi ottenuti, proclamazione vincitore/i e fine.

E' solo una maledetta questione psicologica che me lo fa sembrare un mostro gigantesco!

Comunque, la mia app sarà migliore di Zynga (non esteticamente, purtroppo), in quanto consentirà di scegliere stanze in base alla propria nazionalità, così da richiedere amicizia a gente che viva nella propria nazione e poter poi chattare, in separata "sede". Questa dovrebbe essere una funzionalità aggiuntiva molto apprezzata, soprattutto dai "provoloni da chat" :D


Ok, riproviamo per la 2.435a volta; speriamo non mi cadano di nuovo le braccia, non sono mica un polipo!
 

LucaMs

Expert
Licensed User
Longtime User
Io ho già partecipato recentemente e... sono rimasto deluso.

No, non dall'app, dal fatto che quando studiavo (si fa per dire), ovvero circa 200 anni fa, credevo di conoscere praticamente tutte le Capitali del Mondo.
A parte che molte sono cambiate/nate (vedi ex Jugoslavia, ex URSS, ...) e che appunto è passato... "un po' " di tempo, per i miei gusti ho fatto troppi errori :D
 

Schakalaka

Active Member
Licensed User
Adesso puoi ripassarle ancora meglio. cliccando sulla risposta sbagliata a fine gioco si apre la schermata in google maps! ;)
 
Top