lotto_tom75
Advanced Premium Member
Dopo aver modificato questo code fatto anni fa su mia richiesta dai grandissimi Luigi e I legend per poter verificare situazioni teoricamente ottimali di incmax per tutte le sorti da E a C ma non dal punto di vista delle posizioni... non riesco a capire dove modificarlo ulteriormente al fine di visualizzare nel grafico anche l'ultimo valore di incmax posizionale rilevato...
Per adesso il grafico è corretto dal punto di vista dell'analisi posizionale effettuata dalle mie piccole modifiche ma non include appunto l'ultimo valore di incmax posizionale che per maggior chiarezza ho evidenziato in rosso... nel relativo output.
Ho provato di tutto di + ma nisba...
Chiedo a Luigi o a I legend o a chi riesce a metterci mano (tipo claudio8) come poter fare...
Thanks!
es. visivo pratico...
GEMI posizioni 1.3.4.5 per la coppia 25.49
Analisi incremento ritardo massimo per la sorte di Estratto
Sulla ruota di : GE.MI
Posizione n. : 1.3.4.5
Da Estrazione : [00001] [ 1 ] 07.01.1871
A Estrazione : [09986] [119] 05.10.2021
Numeri Formazione : 25.49
Ritardo attuale : 77
Ritardo Massimo storico : 77
Frequenza : 1417
Incremento del ritardo massimo attuale : 27
Incremento del ritardo massimo storico più alto : 18
Stringa degli incrementi : 04.06.18.04.08.10.27
Come si vede dal grafico l'ultimo valore di incmax 27 evidenzaito in rosso nel grafico non viene riportato.
Questo infatti si ferma al penultimo valore della serie ovvero al 10.
Per adesso il grafico è corretto dal punto di vista dell'analisi posizionale effettuata dalle mie piccole modifiche ma non include appunto l'ultimo valore di incmax posizionale che per maggior chiarezza ho evidenziato in rosso... nel relativo output.
Ho provato di tutto di + ma nisba...
Codice:
Option Explicit
Class clsLunghetta
Private aNumeri
Private aposizione(1) ' aggiunto valore di posizione
Private mInizio,mFine,aRuote,mSorte
Private mClasse
Private aElencoRit
Private aIdEstrElencoRit
Private aElencoIncrRitMax
Private aIdEstrIncrRitMax
Private aRitardiAllIncremento
Private mRitardo,mRitardoMax,mIncrRitMax,mFrequenza
Private mIncrRitardoMaxSto,mStrIncRitSto
Public Property Get iNumIncrementi
iNumIncrementi = UBound(aElencoIncrRitMax)
End Property
Public Property Get IncrRitMaxSto
IncrRitMaxSto = mIncrRitardoMaxSto
End Property
Public Property Get strIncRitMaxSto
strIncRitMaxSto = mStrIncRitSto
End Property
Public Property Get Ritardo
Ritardo = mRitardo
End Property
Public Property Get RitardoMax
RitardoMax = mRitardoMax
End Property
Public Property Get IncrRitMax
IncrRitMax = mIncrRitMax
End Property
Public Property Get Frequenza
Frequenza = mFrequenza
End Property
Public Property Get LunghettaString
LunghettaString = StringaNumeri(aNumeri)
End Property
Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,vetRuote,SorteInGioco,aposizione)
mInizio = RangeInizio
mFine = RangeFine
aRuote = vetRuote
mSorte = SorteInGioco
Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
Call ElencoRitardi(aNumeri,aRuote,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
Call AlimentaVettoreIncrRitMax
End Sub
Sub EseguiStatistica(aposizione)
Call StatisticaFormazioneTurbo(aNumeri,aRuote,mSorte,mRitardo,mRitardoMax,mIncrRitMax,mFrequenza,mInizio,mFine,,aposizione)
End Sub
Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
Dim k
If IsArray(sLunghetta) Then
ReDim aNumeri(UBound(sLunghetta))
For k = 1 To UBound(sLunghetta)
aNumeri(k) = sLunghetta(k)
Next
Else
Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
End If
mClasse = UBound(aNumeri)
End Sub
Private Sub AlimentaVettoreIncrRitMax
Dim nRitMax,nIncr,nId,k
Dim nUpper
nId = 0
ReDim aElencoIncrRitMax(0)
ReDim aIdEstrIncrRitMax(0)
ReDim aRitardiAllIncremento(0)
aElencoIncrRitMax(0) = aElencoRit(1)
For k = 1 To UBound(aElencoRit)
If aElencoRit(k) > nRitMax Then
If nRitMax > 0 Then
nIncr = aElencoRit(k) - nRitMax
nId = nId + 1
ReDim Preserve aElencoIncrRitMax(nId)
aElencoIncrRitMax(nId) = nIncr
ReDim Preserve aIdEstrIncrRitMax(nId)
aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
ReDim Preserve aRitardiAllIncremento(nId)
aRitardiAllIncremento(nId) = aElencoRit(k)
End If
nRitMax = aElencoRit(k)
End If
Next
mStrIncRitSto = StringaNumeri(aElencoIncrRitMax,,True)
nUpper = UBound(aElencoIncrRitMax)
mIncrRitardoMaxSto = MassimoV(aElencoIncrRitMax,1,nUpper-1)
End Sub
Sub DisegnaGraficoIncrRitMax
Dim x,y,k
Dim nValoreMaxX,nValoreMaxY,nValoreMinX
Dim nStepX,nStepY
Dim nUpperVetIncrRit
nValoreMinX = MinimoV(aIdEstrIncrRitMax,1)
nValoreMaxX = aIdEstrIncrRitMax(UBound(aIdEstrIncrRitMax))
nValoreMaxY = MassimoV(aElencoRit,1)
nStepX =(nValoreMaxX -(mInizio - 1)) \10
nStepY = nValoreMaxY \10
Call PreparaGrafico("Formazione " & StringaNumeri(aNumeri),nValoreMinX,nValoreMaxX,0,nValoreMaxY,nStepX,nStepY)
nUpperVetIncrRit = UBound(aElencoIncrRitMax)
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit'+1
x = aIdEstrIncrRitMax(k)'+1
y = aElencoIncrRitMax(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbRed,"IncrRitMax")
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aRitardiAllIncremento(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbBlue,"RitMax")
Call InserisciGrafico
End Sub
End Class
Sub Main
Dim Inizio,Fine,Sorte,aRuote,clsL,aN,sChrSep,k,sFrz
Dim aposizione(5)
Dim quanteposizioniunite
quanteposizioniunite = CInt(InputBox("quante posizioni unite",,4))
Select Case(quanteposizioniunite)
Case 1
'Dim aposizione(1)
aposizione(1) = CInt(InputBox("posizione da analizzare",,1))
Case 2
'aposizione(2)
aposizione(1) = CInt(InputBox("prima posizione da analizzare",,1))
aposizione(2) = CInt(InputBox("seconda posizione da analizzare",,2))
Case 3
'aposizione(3)
aposizione(1) = CInt(InputBox("prima posizione da analizzare",,1))
aposizione(2) = CInt(InputBox("seconda posizione da analizzare",,2))
aposizione(3) = CInt(InputBox("terza posizione da analizzare",,3))
Case 4
'aposizione(4)
aposizione(1) = CInt(InputBox("prima posizione da analizzare",,1))
aposizione(2) = CInt(InputBox("seconda posizione da analizzare",,3))
aposizione(3) = CInt(InputBox("terza posizione da analizzare",,4))
aposizione(4) = CInt(InputBox("quarta posizione da analizzare",,5))
Case 5
'aposizione(5)
aposizione(1) = CInt(InputBox("prima posizione da analizzare",,1))
aposizione(2) = CInt(InputBox("seconda posizione da analizzare",,2))
aposizione(3) = CInt(InputBox("terza posizione da analizzare",,3))
aposizione(4) = CInt(InputBox("quarta posizione da analizzare",,4))
aposizione(5) = CInt(InputBox("quinta posizione da analizzare",,5))
End Select
'aposizione(1) = CInt(InputBox("posizione da analizzare ",,1))
sChrSep = " "
Inizio = EstrazioneIni
Fine = EstrazioneFin
Set clsL = New clsLunghetta
ReDim aN(90)
If ScegliFormazione(aN) Then
For k = 1 To 90
If aN(k) Then
sFrz = sFrz & Format2(k) & ","
End If
Next
sFrz = RimuoviLastChr(sFrz,",")
aN = Array(0)
aN = array_push(aN,sFrz)
Sorte = SelEsito
Call ScegliRuote(aRuote,Nothing)
Call clsL.Init(aN,sChrSep,Inizio,Fine,aRuote,Sorte,aposizione)
Call clsL.EseguiStatistica(aposizione)
Call AvanzamentoElab(0,1,1)
Call Scrivi("Analisi incremento ritardo massimo per la sorte di " & NomeSorte(Sorte),True,,vbRed,vbWhite,4)
Call Scrivi
Call Scrivi("Sulla ruota di : " & StringaRuote(aRuote) & " ",True,,vbBlue,vbWhite,3)
Call Scrivi("Posizione n. : " & StringaNumeri(aposizione))
Call Scrivi("Da Estrazione : " & GetInfoEstrazione(Inizio),True,,vbBlue,vbWhite,3)
Call Scrivi("A Estrazione : " & GetInfoEstrazione(Fine),True,,vbBlue,vbWhite,3)
Call Scrivi
Call Scrivi("Numeri Formazione : " & clsL.LunghettaString,True,,,,2)
Call Scrivi("Ritardo attuale : " & clsL.Ritardo,True,,,,2)
Call Scrivi("Ritardo Massimo storico : " & clsL.RitardoMax,True,,,,2)
Call Scrivi("Frequenza : " & clsL.Frequenza,True,,,,2)
Call Scrivi("Incremento del ritardo massimo attuale : " & clsL.IncrRitMax,True,,,,2)
Call Scrivi("Incremento del ritardo massimo storico più alto : " & clsL.IncrRitMaxSto,True,,,,2)
Call Scrivi("Stringa degli incrementi : " & clsL.strIncRitMaxSto & ".<font color=red>" & clsL.IncrRitMax & "</font>",True,,,,2)
Call Scrivi
If clsL.RitardoMax > 0 Then
Call clsL.DisegnaGraficoIncrRitMax
End If
End If
End Sub
Function SelEsito
Dim ret
Dim aVoci
' gli array partono sempre da 0
aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
ret = ScegliOpzioneMenu(aVoci,1," Analisi Posizionale per Sorte di : ")
SelEsito = ret
End Function
Function ScegliFormazione(aN)
Dim sFormazione
Dim k,i
sFormazione = InputBox("Inserire la formazione da analizzare separando i numeri che la compongono con il punto",,"25.49")
ReDim aV(0)
Call SplitByChar(sFormazione,".",aV)
For k = 0 To UBound(aV)
If Int(aV(k)) > 0 And Int(aV(k)) <= 90 Then
aN(Int(aV(k))) = True
i = i + 1
End If
Next
If i > 0 Then ScegliFormazione = True
End Function
Function array_push(arr,vars)
Dim k,newelem,newarrsize,elem
If IsArray(arr) Then
If Len(vars) > 0 Then
If InStr(vars,",") = False Then
newarrsize = CInt(UBound(arr) + 1)
ReDim Preserve arr(newarrsize)
arr(newarrsize) = vars
Else
k =(UBound(arr) + 1)
newelem = Split(vars,",")
newarrsize = CInt(UBound(arr) + UBound(newelem) + 1)
ReDim Preserve arr(newarrsize)
For Each elem In newelem
arr(k) = Trim(elem)
k = k + 1
Next
End If
End If
array_push = arr
Else
array_push = False
End If
End Function
Chiedo a Luigi o a I legend o a chi riesce a metterci mano (tipo claudio8) come poter fare...
Thanks!
es. visivo pratico...
GEMI posizioni 1.3.4.5 per la coppia 25.49
Analisi incremento ritardo massimo per la sorte di Estratto
Sulla ruota di : GE.MI
Posizione n. : 1.3.4.5
Da Estrazione : [00001] [ 1 ] 07.01.1871
A Estrazione : [09986] [119] 05.10.2021
Numeri Formazione : 25.49
Ritardo attuale : 77
Ritardo Massimo storico : 77
Frequenza : 1417
Incremento del ritardo massimo attuale : 27
Incremento del ritardo massimo storico più alto : 18
Stringa degli incrementi : 04.06.18.04.08.10.27
Come si vede dal grafico l'ultimo valore di incmax 27 evidenzaito in rosso nel grafico non viene riportato.
Questo infatti si ferma al penultimo valore della serie ovvero al 10.
Ultima modifica: