Italian Chiacchiericci

Star-Dust

Expert
Licensed User
Longtime User
Il punteggio mi sembra troppo basso 26000:confused:.
Cifra esatta, usati tutti i numeri e in poco tempo
Screenshot_2018-01-15-22-13-06.jpg
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
solo 23000 punti :confused:
Screenshot_2018-01-15-22-18-25.jpg
 

Star-Dust

Expert
Licensed User
Longtime User
Bugs, capita se trovo la cifra esatta ma lascio indietro un numero.
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
~i:*** Service (starter) Create ***
~i:** Service (starter) Start **
~i:** Activity (main) Create, isFirst = true **
~i:** Activity (main) Resume **
~i:*** Service (httputils2service) Create ***
~i:** Service (httputils2service) Start **
~i:** Activity (main) Pause, UserClosed = false **
~i:** Activity (actrealmain) Create, isFirst = true **
~i:** Activity (actrealmain) Resume **
~i:** Activity (actrealmain) Pause, UserClosed = false **
sending message to waiting queue (iad_receivead)
running waiting messages (1)
~i:** Activity (actrealmain) Resume **
~i:** Activity (actrealmain) Pause, UserClosed = false **
~i:** Activity (actrealmain) Resume **
~i:** Activity (actrealmain) Pause, UserClosed = false **
sending message to waiting queue (iad_adopened)
sending message to waiting queue (iad_adclosed)
running waiting messages (2)
~i:** Activity (actrealmain) Resume **
ResponseError. Reason: java.net.SocketTimeoutException, Response:
~e:pointshandler$ResumableSub_CurrPointsresume (java line: 157)
~e:java.io.FileNotFoundException: /data/data/com.mabotech.lettersandnumbers/cache/9: open failed: ENOENT (No such file or directory)
~e: at libcore.io.IoBridge.open(IoBridge.java:460)
~e: at java.io.FileInputStream.<init>(FileInputStream.java:78)
~e: at anywheresoftware.b4a.objects.streams.File.OpenInput(File.java:209)
~e: at anywheresoftware.b4a.samples.httputils2.httpjob._getstring2(httpjob.java:218)
~e: at anywheresoftware.b4a.samples.httputils2.httpjob._getstring(httpjob.java:207)
~e: at com.mabotech.lettersandnumbers.pointshandler$ResumableSub_CurrPoints.resume(pointshandler.java:157)
~e: at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:240)
~e: at anywheresoftware.b4a.BA.raiseEvent2(BA.java:180)
~e: at anywheresoftware.b4a.keywords.Common$11.run(Common.java:1135)
~e: at android.os.Handler.handleCallback(Handler.java:725)
~e: at android.os.Handler.dispatchMessage(Handler.java:92)
~e: at android.os.Looper.loop(Looper.java:153)
~e: at android.app.ActivityThread.main(ActivityThread.java:5297)
~e: at java.lang.reflect.Method.invokeNative(Native Method)
~e: at java.lang.reflect.Method.invoke(Method.java:511)
~e: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
~e: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
~e: at dalvik.system.NativeStart.main(Native Method)
~e:Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
~e: at libcore.io.Posix.open(Native Method)
~e: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
~e: at libcore.io.IoBridge.open(IoBridge.java:444)
~e: ... 17 more
java.io.FileNotFoundException: /data/data/com.mabotech.lettersandnumbers/cache/9: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:460)
at java.io.FileInputStream.<init>(FileInputStream.java:78)
at anywheresoftware.b4a.objects.streams.File.OpenInput(File.java:209)
at anywheresoftware.b4a.samples.httputils2.httpjob._getstring2(httpjob.java:218)
at anywheresoftware.b4a.samples.httputils2.httpjob._getstring(httpjob.java:207)
at com.mabotech.lettersandnumbers.pointshandler$ResumableSub_CurrPoints.resume(pointshandler.java:157)
at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:240)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:180)
at anywheresoftware.b4a.keywords.Common$11.run(Common.java:1135)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
at libcore.io.IoBridge.open(IoBridge.java:444)
... 17 more

Come in questo screenshot
Screenshot_2018-01-15-22-40-58.jpg

PS. Adesso mi va in crash ogni volta che azzeccò il numero :confused:
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
E' probabile, anche se con bassa percentuale :(, che sia dovuto alle modifiche che ho fatto per tentare di gestire la messa in pausa del gioco (e ostacolare i "furbetti del giochettino" :p).

Nella mia console ho un report per un bug ma non so se sia il tuo; questo è di sun S8 con Android 7.0; è il tuo (così non ammattisco per tentare di risolvere due volte lo stesso bug)?

Puoi darmi un'email alla quale io possa inviarti il nuovo apk prima che io lo pubblichi (e magari cerca di ricreare la situazione, usandolo)?

[ti informerà che c'è una nuova versione on line ma non è così, eh]
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
Non è il mio. Hi mandato il report attraverso google. Vai alla consolle di Google alla vice ANR.

Cm la questione dei punteggi è vergognosa, i punti sono di più quando non c'entro il numero. io farei un interrogazione parlamentare.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Cm la questione dei punteggi è vergognosa, i punti sono di più quando non centro il numero. io farei un interrogazione parlamentare.
:p:p:p

Non è il mio. Hi mandato il report attraverso google. Vai alla consolle di Google alla vice ANR.
Là l'ho trovato, uno solo; o è il tuo o il tuo arriverà poi, boh.

Vediamo intanto sta faccenda dei punti perché anche a me, fin dall'inizio, non mi convinceva.
Riporto il codice, almeno le parti importanti...
 

LucaMs

Expert
Licensed User
Longtime User
Anzi, tutta la routine, vediamo dove sta il baco (non ci ho mai perso tempo).
Prima ancora, una domanda: conosci una classe (non lib) con un Toast gradevole? Che quelli di default, almeno sul mio tablet, nemmeno si leggono!

B4X:
Private Sub CalculateNumGamePoints As Int
    Dim Points As Int
    
    Dim NumAttemptError As Int
    NumAttemptError = Abs(mNumToFind - mNumUserAttempt)
    Dim TimeSaved As Int
    TimeSaved = mNumbersTimeAvailable

    '     Error points
    Select NumAttemptError
        Case 0
            Points = 16000
        Case 1
            Points = 15000
        Case 2
            Points = 13000
        Case 3
            Points = 10000
        Case Else
            If NumAttemptError < = 10 Then
                Points = 5000
            Else
                Points = 0
            End If
    End Select
    
#If DEBUG
    Log("punti errore: " & Points)
#End If

    Dim currpoints As Int = Points 'ignore
    
'    Dim PercTimeSaved As Float
'    PercTimeSaved = TimeSaved / FULLTIME_NUMBERS
    
    Points = Points + (TimeSaved/10)
    
#If DEBUG
    Log("time point: " & (Points - currpoints))
#End If

    currpoints = Points
    
'    ' Num. to find size points
'    If mNumToFind > 600 Then
'        Points = Points * 1.1
'    Else If mNumToFind > 300 Then
'        Points = Points * 1.05
'    End If
    
#If DEBUG
    Log("Num Size point: " & (Points - currpoints))
#End If

    currpoints = Points

    ' Num of operations points
    Dim NumOfOperations As Int = cvCalculation.GetSize
    
    ' punteggio vicino deve pagare di più, soprattutto
    ' con 5 tentativi
    
    Select NumOfOperations
        Case 5
            Points = Points * 1.4
        Case 4
            Points = Points * 1.3
        Case 3
            Points = Points * 1.2
        Case 2
            Points = Points * 1.1
        Case 1
            Points = Points * 1
    End Select

#If DEBUG
    Log("Num op. point: " & (Points - currpoints))
    Log("punteggio: " & Points)
    Log(" " )
#End If
    
    Return Points
End Sub
 

Star-Dust

Expert
Licensed User
Longtime User
Secondo me l'errore è in questa riga

B4X:
#If DEBUG
    Log("punti errore: " & Points)
#End If
:p
 

LucaMs

Expert
Licensed User
Longtime User
1) a seconda della distanza dal numero da trovare... da 16.000 pt (per 0 distanza) a 5000 (se <= 10) oppure zero.
Poi vengono aggiunti punti in base al tempo risparmiato. Dato che il tempo massimo è di 60.000 ms, verranno aggiunti da 6000 (tempo impiegato zero) a zero punti (tempo praticamente scaduto).
Poi il punteggio corrente viene moltiplicato per un fattore che è maggiore in base alla quantità di numeri usati.

Benché anche a me i punteggi sembrino strani, a volte, non vedo il bug logico.
 

LucaMs

Expert
Licensed User
Longtime User
Quindi i tuoi crash non erano su un Samsung S8?

Va beh, oramai seguo questa prassi del tutto sbagliata: ho apportato modifiche, vado a pubblicare la versione, direttamente in produzione (errore fatto fin dall'inizio; meglio in Alpha o Beta).
 

Star-Dust

Expert
Licensed User
Longtime User
Quindi i tuoi crash non erano su un Samsung S8?

Va beh, oramai seguo questa prassi del tutto sbagliata: ho apportato modifiche, vado a pubblicare la versione, direttamente in produzione (errore fatto fin dall'inizio; meglio in Alpha o Beta).
Io ho testato con 3 dispositivi diversi, nessuno dei miei é un Samsung S8, sicuramente era qualcunaltro che é benestante :p.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Vediamo se il punteggio che hai ottenuto (post numero 1322 !!!) è esatto... (aggiorno questo post, fatto il calcolo, altrimenti il thread potrebbe diventare troppo lungo)

Non mi pare; a me risulta 27.860 (non 26.000)

16.000 per distanza 0
+ 3.900 tempo residuo
tutto x 1.4
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
Prova così
B4X:
Private Sub CalculateNumGamePoints As Int
    Dim Points As Int
    
    Dim NumAttemptError As Int
    NumAttemptError = Abs(mNumToFind - mNumUserAttempt)
    Dim NumOfOperations As Int = cvCalculation.GetSize
    Dim TimeSaved As Int
    TimeSaved = mNumbersTimeAvailable

    '     Error points
    Select NumAttemptError
        Case 0 To 3
            Points = 16000 - ((NumAttemptError * 2000) + (NumOfOperations * 500)) * TimeSaved
        Case 4 To 10
            Points =  6000 - ((NumAttemptError *  200) + (NumOfOperations * 400)) * TimeSaved
        Case Else
                Points = 0
    End Select
      
    Return Points
End Sub
 

Star-Dust

Expert
Licensed User
Longtime User
Comunque ogni tanto parte la pubblicità durante il gioco, appena stacco la pubblicità il gioco é finito.
Altre volte crasha senza motivo mentre sto vincendo...
 

LucaMs

Expert
Licensed User
Longtime User
Sto già caricando l'apk (ci mette pure una vita); devo studiare bene il tuo codice, ma sicuramente devi dividere TimeSaved che è in ms, quindi, se come nel tuo caso risparmi 39 secondi, verrebbe moltiplicato per 39.000 :D
 

LucaMs

Expert
Licensed User
Longtime User
Comunque ogni tanto parte la pubblicità durante il gioco, appena stacco la pubblicità il gioco é finito.
Altre volte crasha senza motivo mentre sto vincendo...
Secondo me dipende dalle modifiche che avevo fatto per quando metti l'app in pausa durante il gioco; volevo che in quel caso annullasse la partita ma l'ho fatto male. Adesso dovrebbe essere corretto.
 

Star-Dust

Expert
Licensed User
Longtime User
Più sei veloce più punti ricevi. I punti parono da una base fissa + due parametri , precisione e operazioni. La precisione é più valutata delle operazioni.
 

Star-Dust

Expert
Licensed User
Longtime User
Secondo me dipende dalle modifiche che avevo fatto per quando metti l'app in pausa durante il gioco; volevo che in quel caso annullasse la partita ma l'ho fatto male. Adesso dovrebbe essere corretto.
Tanto per prendere i punti non fermano il tempo, Ma per fare punteggio falso ho sentito dire che alcuni mandano una stringa su chrome e automaticamente fa partire gli script in php.
 

Star-Dust

Expert
Licensed User
Longtime User
Infatti é più operazioni usi più punti ti da (NumOfOperations * 500), NumOfOperations calcola con il numero delle operazioni usate, almeno penso visto che non hai commentato le variabili o_O

B4X:
Private Sub CalculateNumGamePoints As Int
    Dim Points As Int
 
    Dim NumAttemptError As Int
    NumAttemptError = Abs(mNumToFind - mNumUserAttempt)
    Dim NumOfOperations As Int = cvCalculation.GetSize
    Dim TimeSaved As Int
    TimeSaved = mNumbersTimeAvailable

    '     Error points
    Select NumAttemptError
        Case 0 To 3
            Points = 16000 + ((NumOfOperations * 500) - (NumAttemptError * 2000)) * (TimeSaved / 10)
        Case 4 To 10
            Points =  6000 + ((NumOfOperations * 400) - (NumAttemptError *  200)) * (TimeSaved / 10)
        Case Else
                Points = 0
    End Select
   
    Return Points
End Sub

Meglio cosi'? ho diviso il tempo per 10 (TimeSaved / 10)
Per ogni operazione usata sono 400 punti. Per ogni errore sottrae 2000
Il tutto rapportato con il tempo rimasto, più ne rimane più viene moltiplicato

Cmq provala, giocaci e vedi se funziona o meno questa formula
 
Last edited:
Top