Novità

chi mi aiuta

demonio

Super member
ciao cerco una mano con questo script
non riesco a capirci niente sullo svolgimento e come si arriva al risultato......
sono inca..... nero

Option Explicit
Class clsAmbo
Private aNum(2)
Private aCicli()
Private bUsato
Private QcicliCopertiSeUsato
Private sBit
Property Get Bit
Bit = sBit
End Property
Property Let Usato(b)
bUsato = b
End Property
Property Get Usato
Usato = bUsato
End Property
Property Let QCicli(v)
ReDim aCicli(v)
End Property
Property Get QCicliCopertiSeInUso
QCicliCopertiSeInUso = QcicliCopertiSeUsato
End Property
Property Get QuantitaCicliRapp
Dim k,q
q = 0
For k = 1 To UBound(aCicli)
If aCicli(k) <> 0 Then
q = q + 1
End If
Next
QuantitaCicliRapp = q
End Property
Sub SetFlagCiclo(id,b)
aCicli(id) = b
End Sub
Function GetFlagCiclo(id)
GetFlagCiclo = aCicli(id)
End Function
Sub SetNumero(id,v)
aNum(id) = v
End Sub
Function GetNumeriString
GetNumeriString = StringaNumeri(aNum,,True)
End Function
Sub GetNumeri(aRet)
Dim k
ReDim aRet(UBound(aNum))

For k = 1 To UBound(aNum)
aRet(k) = aNum(k)
Next
End Sub
Sub AggiornaCicliCoperti
Dim k
sBit = ""
QcicliCopertiSeUsato = QuantitaCicliRapp
For k = 1 To UBound(aCicli)
If aCicli(k) <> 0 Then
sBit = sBit & "X"
Else
sBit = sBit & " "
End If
Next

End Sub
End Class
Sub Main
Dim CollAmbi,CollAmbiTrov
Dim Inizio,Fine,nTotNelRange
Dim nLenCiclo,qCicli
Dim idCiclo,k
Dim Ruota
Dim cAmbo
Dim nTrovati

ReDim aRuote(1)
ReDim aPoste(2)


nTrovati = 0
Ruota = ScegliRuota
nLenCiclo = CInt(InputBox("Colpi di gioco","Colpi","12"))

aRuote(1) = Ruota
aPoste(2) = 1
Inizio = EstrazioneIni
Fine = EstrazioneFin
nTotNelRange =(Fine + 1) - Inizio
If nTotNelRange Mod nLenCiclo = 0 Then
qCicli = nTotNelRange /nLenCiclo
Else
qCicli =((nTotNelRange -(nTotNelRange Mod nLenCiclo)) /nLenCiclo) + 1
End If

Call InitCollAmbi(CollAmbi,qCicli)

ReDim aCicli(qCicli,2) ' indice 0 InizioCiclo , Indice 1 Fine Ciclo , Indice 2 <> da 0 se coperto
Call GestioneRicercaAmbi(qCicli,aCicli,CollAmbi,nLenCiclo,Inizio,Fine,Ruota,nTrovati)

Call GestioneIntstazioneOutput(qCicli,Ruota,Inizio,Fine,nLenCiclo,nTrovati,CollAmbi)

Call GestioneQuadroCopertura(qCicli,aCicli,CollAmbi,nTrovati)

Call GestioneAnalisiGiocate(qCicli,aCicli,CollAmbi,aRuote,aPoste,nLenCiclo)








End Sub
Sub GestioneRicercaAmbi(qCicli,aCicli,collAmbi,nLenCiclo,Inizio,Fine,Ruota,nTrovati)
Dim idCiclo,k

Dim cAmbo
nTrovati = 0
ReDim aCicli(qCicli,2) ' indice 0 InizioCiclo , Indice 1 Fine Ciclo , Indice 2 <> da 0 se coperto
Call InitACicli(aCicli,nLenCiclo,Inizio)
Do
For idCiclo = 1 To qCicli
If aCicli(idCiclo,2) = 0 Then
For k = aCicli(idCiclo,0) To aCicli(idCiclo,1)
Call AggiornaAmbiUsciti(collAmbi,Ruota,k,idCiclo)
Next
End If
Call AvanzamentoElab(1,qCicli,idCiclo)
If ScriptInterrotto Then Exit Sub
Next
Call GetAmboConPiuCopertura(cAmbo,collAmbi)
If Not cAmbo Is Nothing Then
nTrovati = nTrovati + 1
cAmbo.Usato = True
Call cAmbo.AggiornaCicliCoperti
For idCiclo = 1 To qCicli
If cAmbo.GetFlagCiclo(idCiclo) <> 0 Then
aCicli(idCiclo,2) = 1
End If
Next
Else
Exit Do
End If
Call Messaggio("Ambi trovati " & nTrovati)
Call AzzeraCopertura(collAmbi,qCicli)
If ScriptInterrotto Then Exit Sub

Loop While IsScoperto(aCicli,qCicli)
End Sub
Sub GestioneAnalisiGiocate(qCicli,aCicli,CollAmbi,aRuote,aPoste,nLenCiclo)
Dim idCiclo,k
Dim cAmbo

Call Messaggio("Analisi Giocate")
For idCiclo = 1 To qCicli
k = 0
For Each cAmbo In CollAmbi
If cAmbo.usato Then
k = k + 1
ReDim aNum(0)
Call cAmbo.GetNumeri(aNum)
Call ImpostaGiocata(k,aNum,aRuote,aPoste,nLenCiclo,2,,1)
'Call Scrivi(StringaNumeri(aNum))
End If
Next
Call Gioca(aCicli(idCiclo,0) - 1,True)
Call AvanzamentoElab(1,qCicli,idCiclo)
If ScriptInterrotto Then Exit Sub

Next

Call ScriviResoconto
End Sub
Sub GestioneQuadroCopertura(qCicli,aCicli,CollAmbi,nTrovati)


Dim cAmbo
Dim idCiclo,k
Dim sTmp
Dim sRigaBit
Call Scrivi("Quadro copertura ambi")



ReDim aT(3 + qCicli)
aT(1) = " N. "
aT(2) = " Ambo "
aT(3) = " Cicli coperti "
For k = 1 To qCicli
aT(k + 3) = aCicli(k,0) & "-" & aCicli(k,1)
Next

Call Messaggio("Creazione tabella copertura")
Call InitTabella(aT)
ReDim aLineeBit(nTrovati)
nTrovati = 0
For Each cAmbo In CollAmbi
If cAmbo.usato Then
nTrovati = nTrovati + 1
aLineeBit(nTrovati) = cAmbo.Bit

ReDim aT(3 + qCicli)
aT(1) = nTrovati
aT(2) = cAmbo.GetNumeriString
aT(3) = cAmbo.QCicliCopertiSeInUso
For k = 1 To qCicli
aT(k + 3) = Mid(cAmbo.Bit,k,1)
Next
ReDim aColoreCelle(UBound(aT))
Call ImpostaArrayColoreCelle(aColoreCelle,aT)
Call AddRigaTabella(aT,aColoreCelle)
End If
If ScriptInterrotto Then Exit Sub

Next



sRigaBit = ""
For idCiclo = 1 To qCicli
sTmp = "-"
For k = 1 To UBound(aLineeBit)
If Mid(aLineeBit(k),idCiclo,1) = "X" Then
sTmp = "X"
Exit For
End If
Next
sRigaBit = sRigaBit & sTmp
Next
'Call Scrivi(Space(20) & sRigaBit)
ReDim aT(3 + qCicli)

For k = 1 To qCicli
aT(k + 3) = Mid(sRigaBit,k,1)

Next
ReDim aColoreCelle(UBound(aT))
Call ImpostaArrayColoreCelle(aColoreCelle,aT)
Call AddRigaTabella(aT,aColoreCelle)
Call CreaTabella

End Sub
Sub GestioneIntstazioneOutput(qCicli,Ruota,Inizio,Fine,nLenCiclo,nTrovati,Collambi)
Dim sTmp
Dim cAmbo
Call Scrivi(String(100,"."))

Call Scrivi("Ruota : " & NomeRuota(Ruota))
Call Scrivi("Periodo : " & GetInfoEstrazione(Inizio) & " - " & GetInfoEstrazione(Fine))
Call Scrivi("Colpi per singolo attacco : " & nLenCiclo)
Call Scrivi("Totale attacchi : " & qCicli)
Call Scrivi
Call Scrivi(Space(20) & "Descrizione del gioco",True)

Call Scrivi("Giocando i seguenti " & nTrovati & " ambi impostando il gioco in " & nLenCiclo & " colpi di gioco")
Call Scrivi("per ogni attacco e interrompendo alla prima vincita per riprenderlo")
Call Scrivi("con l'attacco successivo previsto al termine naturale dell'attacco")
Call Scrivi("in corso si sarebbero ottenuti i seguenti risutati di gioco")



Call Scrivi("Attenzione non è detto che giocando questa serie di ambi nelle estrazioni",,,,vbRed)
Call Scrivi("successive a quelle esaminate si otttenga per certo la vincita",,,,vbRed)

Call Scrivi(String(100,"."))

Call Scrivi()

sTmp = ""
For Each cAmbo In Collambi
If cAmbo.usato Then
sTmp = sTmp &(cAmbo.GetNumeriString) & ","
End If
Next
sTmp = Left(sTmp,Len(sTmp) - 1)
Call Scrivi("Ambi in gioco : " & sTmp)

Call Scrivi(String(100,"."))

Call Scrivi()
End Sub
Sub ImpostaArrayColoreCelle(aColoreCelle,aT)
Dim k

For k = 1 To UBound(aT)
If aT(k) = "X" Then
aColoreCelle(k) = vbGreen
Else
aColoreCelle(k) = vbWhite
End If
Next
End Sub
Sub AggiornaRigheBuf(aRighe,nInizio,nFine,idCiclo)

Dim k
Dim sChr
Dim sTmp

sTmp = FormatSpace(nInizio,4,True)
For k = 1 To 4
sChr = Mid(sTmp,k,1)
Call InsCar(aRighe(k),sChr,idCiclo)

Next

sTmp = FormatSpace(nFine,4,True)
For k = 6 To 9
sChr = Mid(sTmp,k - 5,1)
Call InsCar(aRighe(k),sChr,idCiclo)

Next


End Sub
Sub InsCar(sRiga,sChr,nPos)

Dim sLeft
Dim sRight

sLeft = Left(sRiga,nPos - 1)
sRight = Mid(sRiga,nPos + 1)
sRiga = sLeft & sChr & sRight


End Sub
Function IsScoperto(aCicli,qCicli)
Dim k,b
b = False

For k = 1 To qCicli
If aCicli(k,2) = 0 Then
b = True
Exit For
End If
Next
IsScoperto = b
End Function

Sub AzzeraCopertura(CollAmbi,qCicli)
Dim cAmbo
For Each cAmbo In CollAmbi
cAmbo.qCicli = qCicli
Next
End Sub
Sub GetAmboConPiuCopertura(cAmbo,CollAmbi)
Dim cAmboTmp
Dim nMax,n
nMax = 0
For Each cAmboTmp In CollAmbi
n = cAmboTmp.QuantitaCicliRapp
If n >= nMax Then
nMax = n
Set cAmbo = cAmboTmp
End If
Next
End Sub
Sub AggiornaAmbiUsciti(CollAmbi,Ruota,idEstr,idCiclo)
Dim k,kk,s
Dim cAmbo
ReDim aNum(0)


If GetArrayNumeriRuota(idEstr,Ruota,aNum) Then
Call OrdinaMatrice(aNum,1)
For k = 1 To 4
For kk = k + 1 To 5
s = "k" & Format2(aNum(k)) & "-" & Format2(aNum(kk))
Set cAmbo = CollAmbi(s)
Call cAmbo.SetFlagCiclo(idCiclo,1)
Next
Next
End If
End Sub

Sub InitACicli(aCicli,nLenCiclo,Inizio)
Dim k
Dim nStart
nStart = Inizio
For k = 1 To UBound(aCicli)
aCicli(k,2) = 0
aCicli(k,0) = nStart
aCicli(k,1) =(nStart - 1) + nLenCiclo
nStart = aCicli(k,1) + 1
Next
End Sub
Sub InitCollAmbi(CollAmbi,qCicli)
' sistemi che generano un elevato numero di combinazioni
Dim k,e,s
Dim nClasse
ReDim aNumeri(90)
Dim aColonne
Dim cAmbo
Set CollAmbi = GetNewCollection
nClasse = 2 ' sviluppo in ambi
' inizializzo i numeri da sviluppare in questo caso 90
' ma potrebbero essere anche di meno
For k = 1 To 90
aNumeri(k) = k
Next
' sviluppo il sistema valorizzando le colonne sviluppate
aColonne = SviluppoIntegrale(aNumeri,nClasse)
' scrivo le colonne in output
For k = 1 To UBound(aColonne)
Set cAmbo = New clsAmbo
cAmbo.qCicli = qCicli
s = "k"
' ciclo per leggere la colonna k
For e = 1 To nClasse
Call cAmbo.SetNumero(e,aColonne(k,e))
s = s & Format2(aColonne(k,e)) & "-"
Next
' tolgo l'ultimo trattino
s = Left(s,Len(s) - 1)
Call CollAmbi.Add(cAmbo,s)
Next
End Sub
 
Ultima modifica:

salvo50

Advanced Member >PLATINUM PLUS<
Ciao a Tutti.

Questo sicuramente è uno script del Prof. penso che in questo forum, quelli che riescono a capire tutte le righe siano meno delle dita di una mano.
 

claudio8

Premium Member
E' tutto scritto, cosa c'è da spiegare?
Colpi per singolo attacco/giocata : 12 = Lunghezza ciclo
Totale attacchi : 23 n°di cicli
totali estrazioni =23*12
trovati 7 ambi che hanno coperto tutti i cicli di gioco ,7 ambi di cui almeno 1 era presente nei 12 colpi (dimensione ciclo) esaminato.

Codice:
Ruota : Bari
Periodo : [09749] [ 21] 18.02.2020 - [10024] [ 1 ] 03.01.2022
Colpi per singolo attacco : 12 
Totale attacchi : 23 
                    Descrizione del gioco
Giocando i seguenti 7 ambi impostando il gioco in 12 colpi di gioco
per ogni attacco e interrompendo alla prima vincita per riprenderlo
con l'attacco successivo previsto al termine naturale dell'attacco
in corso si sarebbero ottenuti i seguenti risutati di gioco
Attenzione non è detto che giocando questa serie di ambi nelle estrazioni
successive a quelle esaminate si ottenga per certo la vincita
....................................................................................................

Ambi in gioco : 16.66,50.59,52.70,53.56,65.85,75.86,81.87

Se vuoi spiegazioni sul costrutto che tra l'altro non mi gira, potrei anche dartele, ma se non hai dimestichezza degli script, diventerebbe un operazione un tantino lunga.
notte.
 

demonio

Super member
E' tutto scritto, cosa c'è da spiegare?
Colpi per singolo attacco/giocata : 12 = Lunghezza ciclo
Totale attacchi : 23 n°di cicli
totali estrazioni =23*12
trovati 7 ambi che hanno coperto tutti i cicli di gioco ,7 ambi di cui almeno 1 era presente nei 12 colpi (dimensione ciclo) esaminato.

Codice:
Ruota : Bari
Periodo : [09749] [ 21] 18.02.2020 - [10024] [ 1 ] 03.01.2022
Colpi per singolo attacco : 12
Totale attacchi : 23
                    Descrizione del gioco
Giocando i seguenti 7 ambi impostando il gioco in 12 colpi di gioco
per ogni attacco e interrompendo alla prima vincita per riprenderlo
con l'attacco successivo previsto al termine naturale dell'attacco
in corso si sarebbero ottenuti i seguenti risutati di gioco
Attenzione non è detto che giocando questa serie di ambi nelle estrazioni
successive a quelle esaminate si ottenga per certo la vincita
....................................................................................................

Ambi in gioco : 16.66,50.59,52.70,53.56,65.85,75.86,81.87

Se vuoi spiegazioni sul costrutto che tra l'altro non mi gira, potrei anche dartele, ma se non hai dimestichezza degli script, diventerebbe un operazione un tantino lunga.
notte.
grazie claudio8 per la risposta
ho inserito il file sbagliato e quindi correggo con i file giusti, scusa se sono duro e non capisco e continuo a chiedere spiegazioni
forse puoi aiutarmi a capire ci sono 3 file per 3 estrazioni consecutive bari del 28\12\2021, bari del 30\12\2021 e bari del 3\01\2022
i primi 2 mi danno indicazioni di 7 ambi, stessi numeri in tutte e due i file stesso periodo analizzato dal 15\02\2020.....e ierisera controllando le estrazioni mi trovo con 8 ambi nel file bari 03.01.....guarda caso esce l'ambo che non era inserito nei file precedenti.
ora per evitare di buttare via soldi.....chiedo lumi
grazie mille
 

Allegati

  • bari 28.12.txt
    17,3 KB · Visite: 10
  • bari 30.12.txt
    17,3 KB · Visite: 10
  • bari 03,01.txt
    18,9 KB · Visite: 7

claudio8

Premium Member
lo script ricerca nei 23 blocchi di 12 estrazioni la quantità minima di ambi che hanno coperto tutti i 23 blocchi .
Questo insieme di estrazioni che vengono considerate iniziano 23x12 = fai tu il calcolo .. estrazioni or sono, sino all'ultima impostata su Spaziometria.
Se cambi il fine estrazioni cambiano automaticamente inizio range totale ed i riferimenti iniziali e finale di ogni ciclo di 12 estrazioni.
È normale quindi che lo script rivede quanti e quali ambi c'entrano l'obbiettivo di trovare il minimo numero di ambi che giocati contemporaneamente siano (almeno uno) vincenti e ti dia risultati diversi con differenti range di analisi/ricerca.
Se vuoi valutare la validità della tecnica porta il fine range di Spaziometria a 12 (dimensione ciclo) estrazioni orsono e verifica a vista se gli ambi che ti propone hanno dato esito nei 12 colpi.
Spero di essere stato chiaro.
 

demonio

Super member
lo script ricerca nei 23 blocchi di 12 estrazioni la quantità minima di ambi che hanno coperto tutti i 23 blocchi .
Questo insieme di estrazioni che vengono considerate iniziano 23x12 = fai tu il calcolo .. estrazioni or sono, sino all'ultima impostata su Spaziometria.
Se cambi il fine estrazioni cambiano automaticamente inizio range totale ed i riferimenti iniziali e finale di ogni ciclo di 12 estrazioni.
È normale quindi che lo script rivede quanti e quali ambi c'entrano l'obbiettivo di trovare il minimo numero di ambi che giocati contemporaneamente siano (almeno uno) vincenti e ti dia risultati diversi con differenti range di analisi/ricerca.
Se vuoi valutare la validità della tecnica porta il fine range di Spaziometria a 12 (dimensione ciclo) estrazioni orsono e verifica a vista se gli ambi che ti propone hanno dato esito nei 12 colpi.
Spero di essere stato chiaro.
Si ho capito il ragionamento,
Grazie
 

claudio8

Premium Member
Si ho capito il ragionamento,
Grazie
se utilizzi il fine range con data dell'ultima estrazione, è normale, per come è impostato lo script, che ti consideri anche l'ultima estrazione e se essa gli serve a "centrare l'obbiettivo", la utilizza e quindi potresti trovarti gli ambi già usciti.

Ps: se hanno fine range diverso, anche l'inizio ricerca deve essere diverso, lui lo calcola moltiplicano la lunghezza ciclo x i cicli impostati e li sottrae al fine range x definire l'inizio ricerca quindi va in automatico che l'inizio varia al variare della data fine range( estrazionefin).

saluti
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 30 aprile 2024
    Bari
    08
    67
    03
    02
    46
    Cagliari
    67
    01
    87
    84
    47
    Firenze
    31
    56
    40
    53
    50
    Genova
    03
    19
    45
    47
    25
    Milano
    71
    48
    51
    12
    13
    Napoli
    45
    19
    49
    76
    56
    Palermo
    58
    74
    86
    37
    67
    Roma
    26
    79
    47
    38
    58
    Torino
    32
    71
    39
    84
    80
    Venezia
    52
    31
    22
    42
    19
    Nazionale
    06
    83
    47
    20
    41
    Estrazione Simbolotto
    Genova
    03
    05
    45
    40
    19
Alto