Italian Valutazione app e miglioramenti

Discussion in 'Italian Forum' started by Schakalaka, May 1, 2018.

  1. Schakalaka

    Schakalaka 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: May 1, 2018
  2. LucaMs

    LucaMs Expert Licensed User

    Pensare che le conoscevo tutte!
    Oltre al fatto che ne avrò sicuramente dimenticate parecchie, alcune sono anche cambiate, da quando "studiavo".

    Anche qui, conoscevo tutte le provincie; poi hanno aggiunto akragas, casal pusterlengo, ... :p

    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ì ;)
     
  3. LucaMs

    LucaMs Expert Licensed User

    upload_2018-5-1_20-9-3.png

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

    :p
     
  4. Sagenut

    Sagenut Active Member Licensed 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.
     
    Star-Dust likes this.
  5. Schakalaka

    Schakalaka Member Licensed User

    ciao,
    grazie dei consigli!!


    ci sto già lavorando.

    Non so come si fà ad adattare il codice a questo

    Hai perfettamente ragione

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

    Sagenut Active Member Licensed 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.
     
    Star-Dust likes this.
  7. Schakalaka

    Schakalaka Member Licensed User

    bene, vedo di pensare a qual cosa..

    ma, vorrei risolvere questo problemuccio..
    il codice che uso per ridimensionare il testo è:
    Code:
    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!
     

    Attached Files:

  8. Sagenut

    Sagenut Active Member Licensed User

    Eventualmente puoi provare a dividere le città con più parole su due righe.
     
  9. LucaMs

    LucaMs Expert Licensed User

    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

    Code:
    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 ;)
     
    Filippo, Schakalaka and Sagenut like this.
  10. LucaMs

    LucaMs Expert Licensed User

    Perché ho chiamato sia l'Array che la List "valore" anziché "valori"?
    Ve lo dico la prossima volta :D
     
  11. LucaMs

    LucaMs Expert Licensed User

    Oh, becco un sacco di Like immeritati e per questo... dove sono i miei 521 Like? :p
     
    Schakalaka likes this.
  12. Sagenut

    Sagenut Active Member Licensed User

    Eravamo rimasti incantati dalla spiegazione con tanto di figure.
     
    Schakalaka and LucaMs like this.
  13. LucaMs

    LucaMs Expert Licensed User

    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).
     
  14. Filippo

    Filippo Expert Licensed User

    su questo devo darti purtroppo... raggione!:D
     
    LucaMs likes this.
  15. LucaMs

    LucaMs Expert Licensed User

    e io devo darti del fetentone :p
     
    Filippo likes this.
  16. LucaMs

    LucaMs Expert Licensed User

    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!
     
  17. LucaMs

    LucaMs Expert Licensed User

    Ops, non stiamo in Chiacchiericci, scusate.
     
  18. Schakalaka

    Schakalaka Member Licensed User

    Sagenut and Star-Dust like this.
  19. LucaMs

    LucaMs Expert Licensed 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
     
  20. Schakalaka

    Schakalaka Member Licensed User

    Adesso puoi ripassarle ancora meglio. cliccando sulla risposta sbagliata a fine gioco si apre la schermata in google maps! ;)
     
    LucaMs likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice