Option Explicit
Sub Main
'Controllare sempre eventuali bugs'
'Lo script potrebbe restituire dati inesatti
'lo script è di origine statistica
'lo script non restituisce previsioni
Dim idClasse
Dim idSorte
Dim idComb
Dim nCol
Dim iCont
Dim nNum
Dim Ini,Fin
Dim Rit,RitMax,IncRitMax,Freq,ScartoRit,RapRit
Dim Ruote,sRuotaTemp,sNum,DataRit
Dim k
Dim Rp1,Rp2,Rp3
Dim aTitoli
Dim InitStart,StopEnd
Dim aRuotaTemp(1)
ReDim aNum(0),aRuote(0),aRit(0)
Ini = 3950 'Inizio estrazioni senza Buchi
Fin = EstrazioneFin
ScegliNumeri(aNum) 'Seleziono i numeri che voglio analizzare
idClasse = ScegliCombinazione(aNum) ' scelgo le combinazioni
idSorte = SelEsito(idClasse) ' scelgo esito di gioco
ScegliRuote(aRuote) ' scelgo le ruote di gioco
Call GetTesto(aRuote,aNum,idClasse,idSorte) ' funzione per intestazione
InitStart = Timer ' serve per verificare il tempo che impiega la routine
Call AlimentaTestoTabella(aTitoli) ' Titoli tabella
Call InitTabella(aTitoli,RGB(233,233,233))
idComb = 0
nCol = InitSviluppoIntegrale(aNum,idClasse)
Do While GetCombSviluppo(aNum)
idComb = idComb + 1
sNum = StringaNumeri(aNum,,True)
Call Messaggio(" Combinazione : " & sNum)
Call AvanzamentoElab(1,nCol,idComb)
For Ruote = 1 To UBound(aRuote)
aRuotaTemp(1) = aRuote(Ruote)
sRuotaTemp = SiglaRuota(aRuotaTemp(1))
Call StatisticaFormazioneTurbo(aNum,aRuotaTemp,idSorte,Rit,RitMax,IncRitMax,Freq)
ScartoRit = RitMax - Rit
RapRit = Round(Dividi(Rit,RitMax),2)
Call ElencoRitardiTurbo(aNum,aRuotaTemp,idSorte,Ini,Fin,aRit,0)
DataRit=DataEstrazione(EstrazioneFin-Rit)
ReDim aTab(13)
Call AlimentaArrayTabella(aTab,idComb,sRuotaTemp,sNum,Freq,Rit,DataRit,Rp1,Rp2,Rp3,RitMax,ScartoRit,RapRit,IncRitMax,aRit)
If IncRitMax > 0 Then Call AddRigaTabella(aTab)
Next
If ScriptInterrotto Then Exit Do
Loop
StopEnd = Timer
Call Scrivi("Colonne Sviluppate : "&nCol)
Call Scrivi("Tempo di elaborazione : " & FormattaSecondi((StopEnd + 01) - InitStart))
Call SetTableWidth("100%")
Call CreaTabellaOrdinabile
End Sub
Sub GetTesto(aRuote,aNum,idClasse,idSorte)
'Importante non cancellare gli avvisi dall'intestazione
Call Scrivi("Il gioco è vietato ai minori di anni 18")
Call Scrivi("Il gioco può comportare grave dipendenza patologica")
Call Scrivi(" ---------------------------------------------------------------- ")
Call Scrivi(" Le ruote sottostanti nella ricerca vengono considerate SEPARATE! ")
Call Scrivi(" ---------------------------------------------------------------- ")
Call Scrivi("RuoteUtilizzate : " & StringaRuote(aRuote))
Call Scrivi("TotNumeriUtilizzati : " & UBound(aNum))
Call Scrivi("arrayNumeriUtilizzati : " & StringaNumeri(aNum,,True))
Call Scrivi("I Numeri sono Comb In : " & NomeCombinazione(idClasse))
Call Scrivi("Ricerca per : " & NomeEsito(idSorte))
Call Scrivi
End Sub
Sub AlimentaArrayTabella(aTab,idComb,sRuotaTemp,sNum,Freq,Rit,DataRit,Rp1,Rp2,Rp3,RitMax,ScartoRit,RapRit,IncRitMax,aRit)
Dim k,m
k = UBound(aRit) - 1
If k=<1 Then Rp1="0" :Rp2="0":Rp3="0"
If k = 1 Then Rp1 = aRit(UBound(aRit) - 1) :Rp2 = "0" :Rp3 = "0"
If k = 2 Then Rp1 = aRit(UBound(aRit) - 1) :Rp2 = aRit(UBound(aRit) - 2) :Rp3 = "0"
If k > 2 Then Rp1 = aRit(UBound(aRit) - 1) :Rp2 = aRit(UBound(aRit) - 2) :Rp3 = aRit(UBound(aRit) - 3)
aTab(1) = idComb
aTab(2) = sRuotaTemp
aTab(3) = sNum
aTab(4) = DataRit
aTab(5) = Freq
aTab(6) = Rit
aTab(7) = RitMax
aTab(8) = ScartoRit
aTab(9) = IncRitMax
aTab(10) = RapRit
aTab(11) = Rp1
aTab(12) = Rp2
aTab(13) = Rp3
End Sub
Sub AlimentaTestoTabella(aTitoli)
aTitoli = Array("","idComb","Ruota","sNum","Ult.Uscita","Freq","Rit.Att","Rit.Max","ScartoRit","IncRitMax","R.A/R.M","Rp1","Rp2","Rp3")
End Sub
Function FormattaSecondi(s)
'Questa Function trasforma il numero di secondi passato come parametro in una stringa
' passando i secondi si ottengono ore minuti e secondi in formato hh:mm:ss
' s ---> Numero di secondi da formattare
' ritorna una stringa il cui formato è hh:mm:ss (la function non funziona se in totale abbiamo piu di 99 ore )
Dim hh
Dim Mm
Dim Ss
Dim TimeStr
hh = s \ 3600
Mm =(s Mod 3600) \ 60
Ss = s -((hh * 3600) +(Mm * 60))
TimeStr = Format2(hh) & ":" & Format2(Mm) & ":" & Format2(Ss)
FormattaSecondi = TimeStr
End Function
Function NomeCombinazione(a)
Dim aVoci
aVoci = Array("","Estratti","Ambi","Terzine","Quartine","Cinquine","Sestine","Settine","Ottine","Novine","Decine","Undicine","Dodicine","Tredicine","Quattordicine","Quindicine")
NomeCombinazione = aVoci(a)
End Function
Function ScegliCombinazione(aNum)
Dim ret,CombMax
Dim aVoci
aVoci = Array("","Estratti","Ambi","Terzine","Quartine","Cinquine","Sestine","Settine","Ottine","Novine","Decine","Undicine","Dodicine","Tredicine","Quattordicine","Quindicine")
'ret = ScegliOpzioneMenu(aVoci,1," Combina i numeri In :")
If UBound(aNum) >= UBound(aVoci) Then
CombMax = NomeCombinazione(UBound(aVoci))
Else
CombMax = NomeCombinazione(UBound(aNum))
End If
ret = ScegliOpzioneMenu(aVoci,1," Combinazione max consentita:" & CombMax)
Do While ret > UBound(aNum)
ret = ScegliOpzioneMenu(aVoci,1," Combinazione max consentita:" & CombMax)
Loop
ScegliCombinazione = ret
End Function
Function SelEsito(idClasse)
Dim ret
Dim aVoci
aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
ret = ScegliOpzioneMenu(aVoci,1," Analesi Sorte<= : " & NomeCombinazione(idClasse))
Do While ret > idClasse
ret = ScegliOpzioneMenu(aVoci,1," Analesi Sorte<= : " & NomeCombinazione(idClasse))
Loop
SelEsito = ret
End Function
Function NomeEsito(idsorte)
Dim aVoci
aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
NomeEsito = aVoci(idsorte)
End Function