Novità

Questo script è...

superbone

Super Member >PLATINUM<
Premessa, posso aspettare tranquillamente.
Lo script che segue è presente nella cartella file script del Programma (con la P maiuscola) SPAZIOMETRIA realizzato da LuigiB.
Non ci sono indicazioni riguardo l’autore, quindi presumo che sia lo stesso LuigiB.
Il nome dello script è “ritardi di rigo.ls”, è corredato anche di istruzioni dove viene spiegato per bene cosa esso deve fare.
La tabella con i dati che restituisce(ritardo, ritardo max, frequenza, ruota, numeri presenti rigo attuale, indice convenienza) vanno benissimo
Poiché lo script è concepito per calcolare di ogni rigo del Tabellone analitico il Ritardo, il Ritardo Max, la Frequenza, ecc.. va da sé che uno può decidere di giocare solo ed esclusivamente quando un dato numero sotto osservazione si trova al ritardo considerato.
Veniamo al dunque. Lo script in questione esegue la ricerca considerando tutti i 90 numeri , io vorrei con le modifiche opportune, avere la possibilità di poter inserire anche una quantità di n numeri a piacimento selezionandoli tra i 90. Inoltre vorrei fosse possibile che sulla tabella output generata dalla elaborazione, cliccando su ogni singolo ritardo di rigo, avere la sequenza dei ritardi tra una sortita e l’altra.
Grazie, Grazie, Grazie a chiunque (Luigi ho visto che sei incasinato con Spazioscript) vorrà dedicare un po’ del suo prezioso tempo a questa mia richiesta.
Ciao a tutti

Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq


Sub Main
Select Case ScegliProcedura
Case 0
ScriviIstruzioni
Case 1
VisualizzaProgressione
Case 2
Call Analisi(True)
Case 3
Call Analisi(False)

End Select

End Sub
Sub Analisi(bEseguiAnalisi)
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nS fald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp

Dim cMaxRigo,cSorte

Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPos taIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiPro gressione
Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot ,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRi go,nRetRitRigo
ReDim aPoste(0)
ReDim aRetRigheProgr(0)




cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
nIdProg = 0
nGiocateTot = 0
bSuperataProg = False




Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)

If bEseguiAnalisi Then
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza minimo al quale la giocata viene eseguita","IcMin",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))

If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPe rcGuadagno,nPostaIniziale,nIndiceConvMin,nColpiPro gressione) = False Then Exit Sub

Call GetVettoreProgressione(1,1,1,nColpiProgressione,aP oste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniz iale)
End If


ReDim abRuote(12)
If ScegliRuote(Nothing,abRuote) <= 0 Then
MsgBox "Ruote non selezionate",vbCritical
Exit Sub
End If


ReDim aRitPerRigo(cMaxRigo,12,3)

For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo(idEstr)
nFatte = nFatte + 1

' blocco analisi giocate ==============================
If bEseguiAnalisi Then

If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
If GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvM in,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetR itRigo) Then
nIdProg = nIdProg + 1
If nIdProg <= nColpiProgressione Then
nGiocateTot = nGiocateTot + 1
sTmp = FormatSpace(nGiocateTot,5) & " - "
sTmp = sTmp & GetInfoEstrazione(idEstr) & " Num : " & Format2(nNumInGioc) & " "
sTmp = sTmp & SiglaRuota(nRuotaInGioc)
sTmp = sTmp & " I.C. : " & FormatSpace(nRetIC,5,True)
sTmp = sTmp & " Rigo : " & FormatSpace(nRetIdRigo,5,True)
sTmp = sTmp & " Ritardo : " & FormatSpace(nRetRitRigo,5,True)
sTmp = sTmp & " Costo : " & aPoste(nIdProg)

Call Scrivi(sTmp)
nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato

If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
nTotVincita = nTotVincita + nVincitaParz
sTmp = "VINCENTE ! Vinti : " & nVincitaParz
sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
sTmp = sTmp & " TotVincita : " & nTotVincita

Call Scrivi(sTmp,True,,vbYellow,vbRed)
nIdProg = 0
End If
Else
Scrivi "Superati i limiti della progressione impostata. Termine analisi"
bSuperataProg = True
End If
End If
End If
End If
'================================================= =====
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If

If ScriptInterrotto Then Exit For
Next



Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For

Next

If bEseguiAnalisi Then
Call Scrivi
Call Scrivi("Giocate eseguite : " & nGiocateTot)
Call Scrivi("Massima esposizione : " & nMassimaEspos)
Call Scrivi("Vincita netta : " & nTotVincita)
Call Scrivi


End If


ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"

Call GeneraAnaliticoTurbo(Fin)


Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx

Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)

sNum = ""
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)

sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(n Fatte,aRitPerRigo(k,nRuota,cIdFreq))),3)

Call AddRigaTabella(aV)
End If
Next
End If
Next


Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))


Call CreaTabella(2)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)

ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetCapitaleImpegnato = CDbl(Trim(aV(4)))

End Function

Function GetVincitaNetta(nIdProg,aRigheProgr)

ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetVincitaNetta = CDbl(Trim(aV(7)))

End Function

Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
Dim k
ReDim aNum(0)
Dim bRet

bRet = False
Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
For k = 1 To 5
If aNum(k) = nNumGiocato Then
bRet = True
Exit For
End If
Next
VerificaGiocata = bRet
End Function


Function GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvM in,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo ,nRetRitRigo)

Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov,nNumDaGioc

nIndiceConvTrov = nIndiceConvMin
nRetNumInGioc = 0
nRetRuotaInGioc = 0
nRetIC = 0
nRetIdRigo = 0
nRetRitRigo = 0


For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
For nRuota = 1 To 12
If nRuota <> 11 Then
nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(n Fatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
If nIc >= nIndiceConvTrov Then
nQ = 0
nNumDaGioc = 0
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)

If n > 0 Then
nNumDaGioc = n
nQ = nQ + 1
If nQ > 1 Then Exit For
End If
Next
If nQ = 1 Then
nRetNumInGioc = nNumDaGioc
nRetRuotaInGioc = nRuota
nIndiceConvTrov = nIc
nRetIC = nIndiceConvTrov
nRetIdRigo = k
nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
End If
End If
End If
Next

Next

GetNumeroDaGiocare = nRetNumInGioc > 0


End Function

Function ScegliProcedura()
Dim aVoci

aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
Dim sTesto

sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
sTesto = sTesto & "nel programma." & vbCrLf
sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf

sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa ruota esce" & vbCrLf
sTesto = sTesto & "uno dei numeri in esso contenuti" & vbCrLf

Call Scrivi(sTesto)

sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf

Call Scrivi(sTesto)


sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
sTesto = sTesto & "Indicando un valore minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al minimo previsto." & vbCrLf
sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto in cui sia presente un solo numero." & vbCrLf
sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf


Call Scrivi(sTesto)



sTesto = "Per cercare di non andare in perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
sTesto = sTesto & "modeste per non dire irrisorie in confronto al capitale esposto al rischio." & vbCrLf


Call Scrivi(sTesto,True,,,vbRed)








End Sub
Sub VisualizzaProgressione

Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
ReDim aPoste(0)
ReDim aRetRigheProgr(0)









nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))

If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aP oste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniz iale)

For k = 0 To UBound(aRetRigheProgr)
Call Scrivi(aRetRigheProgr(k))
Next
Else
MsgBox "Parametri non validi",vbCritical
End If

End Sub

Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPe rcGuadagno,nPostaIniziale,nIndiceConvMin,nColpiPro gressione)
Dim sMsg

sMsg = ""
If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
sMsg = "Prima estrazione di gioco non valida"

End If
If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
End If
If nPostaIniziale <= 0 Then
sMsg = "Posta iniziale non valida"
End If
If nIndiceConvMin <= 0 Then
sMsg = "Indice convenienza minimo non valido"
End If
If nColpiProgressione <= 0 Then
sMsg = "Impostare il numero di colpi per la progressione"
End If

If sMsg <> "" Then
MsgBox sMsg,vbCritical
Else
VerificaParametriGioco = True
End If


End Function
 
Nell'attesa che qualcuno ti risponda,
riposta lo script passandolo prima da notebook perchè nel passagio che hai fatto ha inserito diversi spazi vuoti.
saluti
 
Ciao claudio8,
innanzitutto grazie per l'interessamento alla mia richiesta, proverò a fare quanto suggerito.

Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq


Sub Main
Select Case ScegliProcedura
Case 0
ScriviIstruzioni
Case 1
VisualizzaProgressione
Case 2
Call Analisi(True)
Case 3
Call Analisi(False)

End Select

End Sub
Sub Analisi(bEseguiAnalisi)
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp

Dim cMaxRigo,cSorte

Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPostaIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiProgressione
Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRigo,nRetRitRigo
ReDim aPoste(0)
ReDim aRetRigheProgr(0)




cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
nIdProg = 0
nGiocateTot = 0
bSuperataProg = False




Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)

If bEseguiAnalisi Then
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza minimo al quale la giocata viene eseguita","IcMin",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))

If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione) = False Then Exit Sub

Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
End If


ReDim abRuote(12)
If ScegliRuote(Nothing,abRuote) <= 0 Then
MsgBox "Ruote non selezionate",vbCritical
Exit Sub
End If


ReDim aRitPerRigo(cMaxRigo,12,3)

For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo(idEstr)
nFatte = nFatte + 1

' blocco analisi giocate ==============================
If bEseguiAnalisi Then

If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
If GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvMin,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo) Then
nIdProg = nIdProg + 1
If nIdProg <= nColpiProgressione Then
nGiocateTot = nGiocateTot + 1
sTmp = FormatSpace(nGiocateTot,5) & " - "
sTmp = sTmp & GetInfoEstrazione(idEstr) & " Num : " & Format2(nNumInGioc) & " "
sTmp = sTmp & SiglaRuota(nRuotaInGioc)
sTmp = sTmp & " I.C. : " & FormatSpace(nRetIC,5,True)
sTmp = sTmp & " Rigo : " & FormatSpace(nRetIdRigo,5,True)
sTmp = sTmp & " Ritardo : " & FormatSpace(nRetRitRigo,5,True)
sTmp = sTmp & " Costo : " & aPoste(nIdProg)

Call Scrivi(sTmp)
nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato

If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
nTotVincita = nTotVincita + nVincitaParz
sTmp = "VINCENTE ! Vinti : " & nVincitaParz
sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
sTmp = sTmp & " TotVincita : " & nTotVincita

Call Scrivi(sTmp,True,,vbYellow,vbRed)
nIdProg = 0
End If
Else
Scrivi "Superati i limiti della progressione impostata. Termine analisi"
bSuperataProg = True
End If
End If
End If
End If
'======================================================
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If

If ScriptInterrotto Then Exit For
Next



Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For

Next

If bEseguiAnalisi Then
Call Scrivi
Call Scrivi("Giocate eseguite : " & nGiocateTot)
Call Scrivi("Massima esposizione : " & nMassimaEspos)
Call Scrivi("Vincita netta : " & nTotVincita)
Call Scrivi


End If


ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"

Call GeneraAnaliticoTurbo(Fin)


Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx

Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)

sNum = ""
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)

sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)

Call AddRigaTabella(aV)
End If
Next
End If
Next


Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))


Call CreaTabella(2)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)

ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetCapitaleImpegnato = CDbl(Trim(aV(4)))

End Function

Function GetVincitaNetta(nIdProg,aRigheProgr)

ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetVincitaNetta = CDbl(Trim(aV(7)))

End Function

Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
Dim k
ReDim aNum(0)
Dim bRet

bRet = False
Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
For k = 1 To 5
If aNum(k) = nNumGiocato Then
bRet = True
Exit For
End If
Next
VerificaGiocata = bRet
End Function


Function GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvMin,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo)

Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov,nNumDaGioc

nIndiceConvTrov = nIndiceConvMin
nRetNumInGioc = 0
nRetRuotaInGioc = 0
nRetIC = 0
nRetIdRigo = 0
nRetRitRigo = 0


For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
For nRuota = 1 To 12
If nRuota <> 11 Then
nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
If nIc >= nIndiceConvTrov Then
nQ = 0
nNumDaGioc = 0
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)

If n > 0 Then
nNumDaGioc = n
nQ = nQ + 1
If nQ > 1 Then Exit For
End If
Next
If nQ = 1 Then
nRetNumInGioc = nNumDaGioc
nRetRuotaInGioc = nRuota
nIndiceConvTrov = nIc
nRetIC = nIndiceConvTrov
nRetIdRigo = k
nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
End If
End If
End If
Next

Next

GetNumeroDaGiocare = nRetNumInGioc > 0


End Function

Function ScegliProcedura()
Dim aVoci

aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
Dim sTesto

sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
sTesto = sTesto & "nel programma." & vbCrLf
sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf

sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa ruota esce" & vbCrLf
sTesto = sTesto & "uno dei numeri in esso contenuti" & vbCrLf

Call Scrivi(sTesto)

sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf

Call Scrivi(sTesto)


sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
sTesto = sTesto & "Indicando un valore minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al minimo previsto." & vbCrLf
sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto in cui sia presente un solo numero." & vbCrLf
sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf


Call Scrivi(sTesto)



sTesto = "Per cercare di non andare in perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
sTesto = sTesto & "modeste per non dire irrisorie in confronto al capitale esposto al rischio." & vbCrLf


Call Scrivi(sTesto,True,,,vbRed)








End Sub
Sub VisualizzaProgressione

Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
ReDim aPoste(0)
ReDim aRetRigheProgr(0)









nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))

If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)

For k = 0 To UBound(aRetRigheProgr)
Call Scrivi(aRetRigheProgr(k))
Next
Else
MsgBox "Parametri non validi",vbCritical
End If

End Sub

Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione)
Dim sMsg

sMsg = ""
If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
sMsg = "Prima estrazione di gioco non valida"

End If
If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
End If
If nPostaIniziale <= 0 Then
sMsg = "Posta iniziale non valida"
End If
If nIndiceConvMin <= 0 Then
sMsg = "Indice convenienza minimo non valido"
End If
If nColpiProgressione <= 0 Then
sMsg = "Impostare il numero di colpi per la progressione"
End If

If sMsg <> "" Then
MsgBox sMsg,vbCritical
Else
VerificaParametriGioco = True
End If


End Function
 
Ciao claudio8,
nel caso non fosse andato a buon fine questo nuovo inserimento dello script, per non farti perdere ulteriore tempo, ti invito a reperire lo script originale su Spaziometria-gestione script-elabora script.
Nella finestra dove si scrive il codice, in basso c'è il tasto ELENCO, cliccandoci sopra visualizza gli script presenti.
Il nome dello script interessato è "ritardi di rigo.ls"
Grazie ancora
 
Ottima richiesta. Seguo ;) :) . La tabella per immissione dei numeri voluti, fosse possibile, nelle prossime eventuali versioni del mitico programma del grande LuigiB consiglierei di metterla ovunque, in tutte le sezioni del programma :p :D perchè partire da una massa numerica ridotta doc è tutta un'altra storia rispetto al considerare globalmente tutti i 90 numbers :cool:
 
Ultima modifica:
ciao Superbone , un saluto speciale a lottoTom che mi riempie sempre di complimenti ...
Per quanto riguarda l'argomento va detto che in questo script che sul mio pc si chiama ritardidirigo4.ls
(ho usato il mio non quello postato) bisogna dire che l'analisi non è guidata dai numeri bensi dalle
estrazioni se nel range analizzato ad esempio il tale numero non fosse mai stato estratto non risulterebbe certamente nella statistica finale , non si possono scegliere i numeri proprio perche non sono i numeri a guidare la statistica , e tutto sommato non si potrebbe fare manco la parte del click
sulla riga per far apparire la lista dei ritardi , questo perche l'output dello script non è un programma ma un file html .. quindi una soluzione di compromesso è la seguente.
N.B. dato che ogni rigo può aver avuto un evoluzione di molti ritardi specie se il range di analisi è ampio
lo script usa una variabile (valorizzata a 100 ma puoi cambiarla intervenendo nello script) per mostrare gli ultimi ritardi di rigo prima di quello attuale mostrato nel tabellone principale.

Vedi se ho capito bene la richiesta e se lo script funziona .. ciao.

Codice:
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq
Dim aEstrTA
Class clsRigo
    Private aRitardi
    Private aIdEstr
    Private nUscite
Sub class_initialize
    nUscite = 0
    ReDim aRitardi (nUscite)
    ReDim aIdEstr (nUscite)
End Sub
Public Property Get Uscite
    Uscite = nUscite
End Property
Sub AddRitardo (nRitardo , idEstr )
    nUscite = nUscite +1
    ReDim Preserve aRitardi ( nUscite )
    ReDim Preserve aIdEstr ( nUscite )
    aRitardi (nUscite) = nRitardo
    aIdEstr (nUscite) =idEstr
End Sub
Function GetDati (nUscita , sRetData , nRetRitardo)
    sRetData = GetInfoEstrazione (aIdEstr(nUscita) )
    nRetRitardo = aRitardi (nUscita )
End Function
End Class
Sub Main
    Select Case ScegliProcedura
    Case 0
    ScriviIstruzioni
    Case 1
    VisualizzaProgressione
    Case 2
    Call Analisi(True)
    Case 3
    Call Analisi(False)
    End Select
End Sub
Sub InitTabAnalitico(Inizio,Fine)
    Dim k,r,e,i
    ReDim aEstrTA(Fine,12,5)
    Call GeneraAnaliticoTurbo(Inizio)
    For k = 230 To 0 Step - 1
        i = Inizio - k
        For r = 1 To 12
            If r <> 11 Then
                For e = 1 To 5
                    aEstrTA(i,r,e) = TabelloneAnaliticoTurbo(k,r,e)
                Next
            End If
        Next
    Next
End Sub
Sub AggiornaTabAna(idEstr)
    Dim k,r,e,i
    Dim aNum,aBNum,nElim,nLimite
    nLimite = idEstr - 230
    For r = 1 To 12
        If r <> 11 Then
            Call GetArrayNumeriRuota(idEstr,r,aNum)
            If aNum(1) > 0 Then
                aBNum = ArrayNumeriToBool(aNum)
                nElim = 0
                ' k = idEstr To idEstr -230 Step -1
                k = idEstr
                For e = 1 To 5
                    aEstrTA(k,r,e) = aNum(e)
                Next
                Do While nElim < 5 And k >= nLimite
                    k = k - 1
                    For e = 1 To 5
                        If aBNum(aEstrTA(k,r,e)) Then
                            aEstrTA(k,r,e) = 0
                            nElim = nElim + 1
                            'If nElim = 5 Then Exit For
                        End If
                    Next
                Loop
            End If
            'Next
        End If
    Next
End Sub
Sub Analisi(bEseguiAnalisi)
    Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp
    Dim cMaxRigo,cSorte
    Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPostaIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiProgressione
    Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRigo,nRetRitRigo
    ReDim aPoste(0)
    ReDim aRetRigheProgr(0)
    Dim aBNumEstrSucc
    Dim t
    Dim collSeqRitardi , sKey
    Dim cRigo
    Dim nMaxRigheTbElencoRit

    nMaxRigheTbElencoRit = 100

    cIdRit = 0
    cIdRitMax = 1
    cIdFreq = 3
    cMaxRigo = 80
    cSorte = 1
    nIdProg = 0
    nGiocateTot = 0
    bSuperataProg = False
    Ini = EstrazioneIni
    Fin = EstrazioneFin
    nDaFare = Fin -(Ini - 1)
    If bEseguiAnalisi Then
        nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
        nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza Minimo al quale la giocata viene eseguita","IcMin",5))
        nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
        nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
        nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))
        If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione) = False Then Exit Sub
        Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
    End If
    ReDim abRuote(12)
    If ScegliRuote(Nothing,abRuote) <= 0 Then
        MsgBox "Ruote non selezionate",vbCritical
        Exit Sub
    End If
    t = Timer
    Call InitTabAnalitico(Ini,Fin)
    ReDim aRitPerRigo(cMaxRigo,12,3)
    Set collSeqRitardi = GetNewCollection
    For idEstr = Ini To Fin - 1
        ReDim aNum(5)
        'Call GeneraAnaliticoTurbo(idEstr)
        Call AggiornaTabAna(idEstr)
        nFatte = nFatte + 1
        ' blocco Analisi giocate ==============================
        If bEseguiAnalisi Then
            If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
                If GetNumeroDaGiocare(idEstr,aRitPerRigo,nFatte,nIndiceConvMin,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo) Then
                    nIdProg = nIdProg + 1
                    If nIdProg <= nColpiProgressione Then
                        nGiocateTot = nGiocateTot + 1
                        sTmp = FormatSpace(nGiocateTot,5) & " - "
                        sTmp = sTmp & GetInfoEstrazione(idEstr) & " Num : " & Format2(nNumInGioc) & " "
                        sTmp = sTmp & SiglaRuota(nRuotaInGioc)
                        sTmp = sTmp & " I.C. : " & FormatSpace(nRetIC,5,True)
                        sTmp = sTmp & " Rigo : " & FormatSpace(nRetIdRigo,5,True)
                        sTmp = sTmp & " Ritardo : " & FormatSpace(nRetRitRigo,5,True)
                        sTmp = sTmp & " Costo : " & aPoste(nIdProg)
                        Call Scrivi(sTmp)
                        nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
                        If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato
                        If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
                            nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
                            nTotVincita = nTotVincita + nVincitaParz
                            sTmp = "VINCENTE ! Vinti : " & nVincitaParz
                            sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
                            sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
                            sTmp = sTmp & " TotVincita : " & nTotVincita
                            Call Scrivi(sTmp,True,,vbYellow,vbRed)
                            nIdProg = 0
                        End If
                    Else
                        Scrivi "Superati i limiti della progressione impostata. Termine analisi"
                        bSuperataProg = True
                    End If
                End If
            End If
        End If
        '======================================================
        For nRuota = 1 To 12
            If nRuota <> 11 And abRuote(nRuota) Then
                Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
                'ReDim aBNumEstrSucc(90)
                'For p = 1 To 5
                'aBNumEstrSucc(aNum(p)) = True
                'Next
                aBNumEstrSucc = ArrayNumeriToBool(aNum)
                For nRit = 0 To cMaxRigo
                    nSfald = 0
                    'bValida = False
                    For p = 1 To 5
                        'n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
                        n = TabelloneAnaliticoInterno(idEstr,nRit,nRuota,p)
                        'If n >0 Then bValida = True
                        If n > 0 Then
                            If aBNumEstrSucc(n) Then
                                nSfald = nSfald + 1
                            End If
                        End If
                    Next
                    'If bValida Then
                    If nSfald >= cSorte Then
                        sKey = "k" & nRit & "_" & nRuota
                        If GetItemCollection( collSeqRitardi , sKey , cRigo )Then
                            Call cRigo.AddRitardo(aRitPerRigo(nRit,nRuota,cIdRit) ,idEstr+1 )
                        Else
                            Set cRigo = New clsRigo
                            Call cRigo.AddRitardo(aRitPerRigo(nRit,nRuota,cIdRit) ,idEstr+1 )
                            Call AddItemColl(collSeqRitardi,cRigo ,sKey)
                        End If
                        If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
                            aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
                        End If
                        aRitPerRigo(nRit,nRuota,cIdRit) = 0
                        aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
                    Else
                        aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
                    End If
                    'End If
                    If ScriptInterrotto Then Exit For
                Next
            End If
            If ScriptInterrotto Then Exit For
        Next
        Call AvanzamentoElab(1,nDaFare,nFatte)
        If ScriptInterrotto Then Exit For
    Next
    If bEseguiAnalisi Then
        Call Scrivi
        Call Scrivi("Giocate eseguite    : " & nGiocateTot)
        Call Scrivi("Massima esposizione : " & nMassimaEspos)
        Call Scrivi("Vincita netta       : " & nTotVincita)
        Call Scrivi
    End If
    ReDim aV(8)
    aV(1) = "Rigo"
    aV(2) = "Ritardo"
    aV(3) = "RitardoMax"
    aV(4) = "Frequenza"
    aV(5) = "Ruota"
    aV(6) = "NumPresRigoAttuale"
    aV(7) = "IndiceConv"
    aV(8) = "Elenco ritardi"
    'Call GeneraAnaliticoTurbo(Fin)
    Call AggiornaTabAna(Fin)
    Messaggio "Creazione tabella"
    If MsgBox("Mostrare solo le righe  alla cui Posizione nel Tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
        bMostraSoloRigheConNimeri = True
    End If
    DoEventsEx
    Call InitTabella(aV,vbBlue ,,,vbWhite)

    For nRuota = 1 To 12
        If nRuota <> 11 And abRuote(nRuota) Then
            For k = 0 To cMaxRigo
                aV(1) = k
                aV(2) = aRitPerRigo(k,nRuota,cIdRit)
                aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
                aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
                aV(5) = NomeRuota(nRuota)
                sNum = ""
                For p = 1 To 5
                    'n = TabelloneAnaliticoTurbo(k,nRuota,p)
                    n = TabelloneAnaliticoInterno(Fin,k,nRuota,p)
                    sNum = Iif(n > 0,sNum & n & ".",sNum)
                Next
                sNum = RimuoviLastChr(sNum,".")
                bValida = False
                If bMostraSoloRigheConNimeri Then
                    If sNum <> "" Then bValida = True
                Else
                    bValida = True
                End If
                If bValida Then
                    sKey = "k" & k & "_" & nRuota
                    aV(6) = sNum
                    aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
                    aV(8) = GetTestoLink ( sKey ,"Elenco ritardi")
                    Call AddRigaTabella(aV)
                    'ReDim aV(7)
                    'sKey = "k" & k & "_" & nRuota
                    'If GetItemCollection (collSeqRitardi ,sKey ,cRigo) Then
                    'aV(1) = cRigo.GetElencoRitardi
                    'Call AddRigaTabella(aV)
                    'End If
                End If
            Next
        End If
    Next
    Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
    Call Scrivi("Fine   : " & GetInfoEstrazione(Fin))

    Call Messaggio ("Creazione tabella ")
    Call CreaSezione  ( "Ritardi")
    Call CreaTabella(2)
    Call ChiudiSezione


    Call Messaggio ("Creazione tabelline ultimi ritardi")

    For nRuota = 1 To 12
        If nRuota <> 11 And abRuote(nRuota) Then
            For k = 0 To cMaxRigo
                sKey = "k" & k & "_" & nRuota
                If GetItemCollection (collSeqRitardi ,sKey ,cRigo) Then
                    Call CreaSezione  ( sKey)
                    Call scriviElencoRitardi (cRigo ,nRuota , k,nMaxRigheTbElencoRit)
                    Call Scrivi (GetTestoLink ( "Ritardi" ,"Tabellone"))
                    Call ChiudiSezione
                End If
            Next
        End If
        Call AvanzamentoElab ( 1,12,nRuota )

    Next
    Call Scrivi(Timer - t)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)
    ReDim aV(0)
    Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
    GetCapitaleImpegnato = CDbl(Trim(aV(4)))
End Function
Function GetVincitaNetta(nIdProg,aRigheProgr)
    ReDim aV(0)
    Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
    GetVincitaNetta = CDbl(Trim(aV(7)))
End Function
Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
    Dim k
    ReDim aNum(0)
    Dim aBNum
    Dim bRet
    bRet = False
    Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
    aBNum = ArrayNumeriToBool(aNum)
    'For k = 1 To 5
    'If aNum(k) = nNumGiocato Then
    'bRet = True
    'Exit For
    'End If
    'Next
    'VerificaGiocata = bRet
    VerificaGiocata = aBNum(nNumGiocato)
End Function
Function GetNumeroDaGiocare(idEstr,aRitPerRigo,nFatte,nIndiceConvMin,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo)
    Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov,nNumDaGioc
    nIndiceConvTrov = nIndiceConvMin
    nRetNumInGioc = 0
    nRetRuotaInGioc = 0
    nRetIC = 0
    nRetIdRigo = 0
    nRetRitRigo = 0
    For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
        For nRuota = 1 To 12
            If nRuota <> 11 Then
                nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
                If nIc >= nIndiceConvTrov Then
                    nQ = 0
                    nNumDaGioc = 0
                    For p = 1 To 5
                        'n = TabelloneAnaliticoTurbo(k,nRuota,p)
                        n = TabelloneAnaliticoInterno(idEstr,k,nRuota,p)
                        If n > 0 Then
                            nNumDaGioc = n
                            nQ = nQ + 1
                            If nQ > 1 Then Exit For
                        End If
                    Next
                    If nQ = 1 Then
                        nRetNumInGioc = nNumDaGioc
                        nRetRuotaInGioc = nRuota
                        nIndiceConvTrov = nIc
                        nRetIC = nIndiceConvTrov
                        nRetIdRigo = k
                        nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
                    End If
                End If
            End If
        Next
    Next
    GetNumeroDaGiocare = nRetNumInGioc > 0
End Function
Function ScegliProcedura()
    Dim aVoci
    aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
    ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
    Dim sTesto
    sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
    sTesto = sTesto & "nel programma." & vbCrLf
    sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf
    sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa  ruota esce" & vbCrLf
    sTesto = sTesto & "uno dei numeri In esso contenuti" & vbCrLf
    Call Scrivi(sTesto)
    sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
    sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf
    Call Scrivi(sTesto)
    sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
    sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
    sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
    sTesto = sTesto & "Indicando un valore Minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
    sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al Minimo previsto." & vbCrLf
    sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
    sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto In cui sia presente un solo numero." & vbCrLf
    sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
    sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf
    Call Scrivi(sTesto)
    sTesto = "Per cercare di non andare In perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
    sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
    sTesto = sTesto & "modeste per non dire irrisorie In confronto al capitale esposto al rischio." & vbCrLf
    Call Scrivi(sTesto,True,,,vbRed)
End Sub
Sub VisualizzaProgressione
    Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
    ReDim aPoste(0)
    ReDim aRetRigheProgr(0)
    nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
    nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
    nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
    If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
        Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
        For k = 0 To UBound(aRetRigheProgr)
            Call Scrivi(aRetRigheProgr(k))
        Next
    Else
        MsgBox "Parametri non validi",vbCritical
    End If
End Sub
Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione)
    Dim sMsg
    sMsg = ""
    If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
        sMsg = "Prima estrazione di gioco non valida"
    End If
    If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
        sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
    End If
    If nPostaIniziale <= 0 Then
        sMsg = "Posta iniziale non valida"
    End If
    If nIndiceConvMin <= 0 Then
        sMsg = "Indice convenienza Minimo non valido"
    End If
    If nColpiProgressione <= 0 Then
        sMsg = "Impostare il numero di colpi per la progressione"
    End If
    If sMsg <> "" Then
        MsgBox sMsg,vbCritical
    Else
        VerificaParametriGioco = True
    End If
End Function
Function TabelloneAnaliticoInterno(IdEstr,Rit,nRuota,nPos)
    Dim i
    i = IdEstr - Rit
    TabelloneAnaliticoInterno = aEstrTA(i,nRuota,nPos)
End Function
Sub CreaSezione (sNome )
    Dim s
    s = "<div id =""" & sNome & """>"
    Scrivi s
End Sub
Sub ChiudiSezione
    Dim s
    s = "</div>"
    Scrivi s
End Sub
Function GetTestoLink (sNomeSez , sDescr)
    Dim s
    s = "<a href=""#"  & sNomeSez   & """>" & sDescr & "</a>"
    GetTestoLink = s
End Function
Sub  scriviElencoRitardi (cRigo ,nRuota , nRigo ,nMaxRigheTb)
    Dim k ,sData , nRit
    ReDim aV(2)
    ReDim aColSpan(2)

    aColSpan(1) = 2
    aColSpan(2) = 0

    aV(1) = NomeRuota (nRuota ) & " Rigo " & nRigo
    Call InitTabella ( aV , vbRed ,,,vbWhite,"Arial" ,aColSpan )
    For k = cRigo.Uscite To 1 Step -1
        Call cRigo.GetDati( k,sData ,nRit)
        aV(1) = sData
        aV(2) = nRit
        Call AddRigaTabella (aV)
    Next
    Call CreaTabella (,,,nMaxRigheTb)



End Sub
 
Ciao,Luigi,scusa ma mi da errore:


Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq
Dim aEstrTA
Class clsRigo
Private aRitardi
Private aIdEstr
Private nUscite
Sub class_initialize
nUscite = 0
ReDim aRitardi (nUscite)
ReDim aIdEstr (nUscite)
End Sub
Public Property Get Uscite
Uscite = nUscite
End Property
Sub AddRitardo (nRitardo , idEstr )
nUscite = nUscite +1
ReDim Preserve aRitardi ( nUscite )
ReDim Preserve aIdEstr ( nUscite )
aRitardi (nUscite) = nRitardo
aIdEstr (nUscite) =idEstr
End Sub
Function GetDati (nUscita , sRetData , nRetRitardo)
sRetData = GetInfoEstrazione (aIdEstr(nUscita) )
nRetRitardo = aRitardi (nUscita )
End Function
End Class
Sub Main
Select Case ScegliProcedura
Case 0
ScriviIstruzioni
Case 1
VisualizzaProgressione
Case 2
Call Analisi(True)
Case 3
Call Analisi(False)
End Select
End Sub
Sub InitTabAnalitico(Inizio,Fine)
Dim k,r,e,i
ReDim aEstrTA(Fine,12,5)
Call GeneraAnaliticoTurbo(Inizio)
For k = 230 To 0 Step - 1
i = Inizio - k
For r = 1 To 12
If r <> 11 Then
For e = 1 To 5
aEstrTA(i,r,e) = TabelloneAnaliticoTurbo(k,r,e)


grazie.
 
Ciao LuigiB,
ti ringrazio di vero cuore per aver preso in considerazione la mia richiesta.
Lo script funziona benissimo e la soluzione della parte del clik è ottima.
Ho salvato lo script col nome ” Regalo di LuigiB per superbone ”.
Per il momento è tutto, anche perché mentre sto scrivendo mi frulla per la testa cosa scrivere con calma in un prossimo intervento a proposito della parte inserimento numeri. Una soluzione? Un compromesso?
Spero davvero di si
Di nuovo un ringraziamento, grazie anche a claudio8, e a lotto-tom75
 
Ciao LuigiB,
dalle considerazioni della tua risposta ho capito che la richiesta di inserimento di n numeri andava formulata in altro modo. Forse è più corretto parlare di n numeri da " dichiarare " all'interno dello script e sui quali quindi operare? Chiedo venia del fatto di non riuscire con linguaggio tecnico proprio degli scripters a rendere più semplice la comprensione di quello che è il mio desiderio che lo script facesse, quindi mi aiuto con una tabella creata con carta, penna e l'’ausilio del tabellone analitico del tuo Grandioso Programma “ SPAZIOMETRIA “ [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 537"]
[TR="class: cke_show_border"]
[TD="colspan: 6"]Firenze cifra1 ( 1-10-11-12-13-14-15-16-17-18-19-21-31-41-51-61-71-81-) aggiornata al 23/01/18[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]num. estr.[/TD]
[TD]data[/TD]
[TD]rigo[/TD]
[TD]ritardo attuale[/TD]
[TD]data ultimo sfaldamento[/TD]
[TD]num. sortito[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]146[/TD]
[TD]07/12/2017[/TD]
[TD]20[/TD]
[TD]8[/TD]
[TD]16/11/2017[/TD]
[TD]41[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]147[/TD]
[TD]09/12/2017[/TD]
[TD]19[/TD]
[TD]7[/TD]
[TD]21/11/2017[/TD]
[TD]17[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]148[/TD]
[TD]12/12/2017[/TD]
[TD]18[/TD]
[TD]4[/TD]
[TD]04/01/2018[/TD]
[TD]17[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]149[/TD]
[TD]14/12/2017[/TD]
[TD]17[/TD]
[TD]0[/TD]
[TD]23/01/2018[/TD]
[TD]12[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]150[/TD]
[TD]16/12/2017[/TD]
[TD]16[/TD]
[TD]6[/TD]
[TD]27/12/2017[/TD]
[TD]41[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]151[/TD]
[TD]19/12/2017[/TD]
[TD]15[/TD]
[TD]0[/TD]
[TD]20/01/2018[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]152[/TD]
[TD]21/12/2017[/TD]
[TD]14[/TD]
[TD]33[/TD]
[TD]06/07/2017[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]153[/TD]
[TD]23/12/2017[/TD]
[TD]13[/TD]
[TD]8[/TD]
[TD]16/12/2017[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]154[/TD]
[TD]27/12/2017[/TD]
[TD]12[/TD]
[TD]12[/TD]
[TD]23/11/2017[/TD]
[TD]16[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]155[/TD]
[TD]28/12/2017[/TD]
[TD]11[/TD]
[TD]3[/TD]
[TD]02/01/2018[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]156[/TD]
[TD]30/12/2017[/TD]
[TD]10[/TD]
[TD]13[/TD]
[TD]14/11/2017[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]1[/TD]
[TD]02/01/2018[/TD]
[TD]9[/TD]
[TD]10[/TD]
[TD]05/12/2017[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]2[/TD]
[TD]04/01/2018[/TD]
[TD]8[/TD]
[TD]8[/TD]
[TD]07/12/2017[/TD]
[TD]71[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]3[/TD]
[TD]08/01/2018[/TD]
[TD]7[/TD]
[TD]1[/TD]
[TD]16/01/2018[/TD]
[TD]10[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]4[/TD]
[TD]09/01/2018[/TD]
[TD]6[/TD]
[TD]6[/TD]
[TD]23/12/2017[/TD]
[TD]71[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]5[/TD]
[TD]11/01/2018[/TD]
[TD]5[/TD]
[TD]22[/TD]
[TD]21/10/2017[/TD]
[TD]16[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]6[/TD]
[TD]13/01/2018[/TD]
[TD]4[/TD]
[TD]27[/TD]
[TD]07/10/2017[/TD]
[TD]61[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]7[/TD]
[TD]16/01/2018[/TD]
[TD]3[/TD]
[TD]4[/TD]
[TD]11/01/2018[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]8[/TD]
[TD]18/01/2018[/TD]
[TD]2[/TD]
[TD]33[/TD]
[TD]23/09/2017[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]9[/TD]
[TD]20/01/2018[/TD]
[TD]1[/TD]
[TD]8[/TD]
[TD]30/12/2017[/TD]
[TD]41[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]10[/TD]
[TD]23/01/2018[/TD]
[TD]0[/TD]
[TD]25[/TD]
[TD]31/10/2017[/TD]
[TD]51[/TD]
[/TR]
[/TABLE]
Ho scelto la ruota di Firenze, per comodità di ricerca i 18 numeri della cifra1 e i ritardi di rigo da 0 a20 il tutto aggiornato all’estrazione del 23/01/18.
Nella tabella vengono evidenziati il numero progressivo delle estrazioni con relativa data di estrazione, il rigo o ritardo di rigo, il ritardo attuale della formazione dei 18 numeri, la data ultima in cui si è verificato lo sfaldamento con l’uscita di un qualsiasi numero della formazione che di fatto ha azzerato il ritardo di quel rigo, infine il numero della formazione che ha determinato lo sfaldamento.
Due parole sul ritardo attuale, guardiamo ad esempio il ritardo del rigo 20, attualmente è 8, ciò vuol dire che dall’ultimo sfaldamento avvenuto nell’estrazione del 16/11/2017 con l’uscita del numero 41, sono otto volte che uno o più numeri della formazione dei nostri 18 numeri è passato a quel rigo senza sfaldarsi, di conseguenza ad ogni passaggio senza esito si incrementa il ritardo di 1.
Lo stesso dicasi per gli altri ritardi di rigo. Vediamo ora come si modificano i ritardi con l’aggiunta della estrazione successiva del 25/01/2018. Ci serviamo allo scopo della tabella sottostante ricavata con lo script “ritardo di rigo4.ls”, che visualizza la posizione dei numeri sul tabellone analitico, ai corrispondenti ritardi di rigo. Anche questa tabella per comodità visualizza i ritardi di rigo da 0 a 20 aggiornata al 23/01/2018 [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 504"]
[TR="class: cke_show_border"]
[TD]Rigo[/TD]
[TD]Ritardo[/TD]
[TD]RitardoMax[/TD]
[TD]Frequenza[/TD]
[TD]Ruota[/TD]
[TD]NumPresRigoAttuale[/TD]
[TD]IndiceConv[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]20[/TD]
[TD]23[/TD]
[TD]67[/TD]
[TD]299[/TD]
[TD]Firenze[/TD]
[TD]39[/TD]
[TD]1,959[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]19[/TD]
[TD]2[/TD]
[TD]91[/TD]
[TD]337[/TD]
[TD]Firenze[/TD]
[TD]38[/TD]
[TD]0,192[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]18[/TD]
[TD]8[/TD]
[TD]52[/TD]
[TD]371[/TD]
[TD]Firenze[/TD]
[TD]25.64.15[/TD]
[TD]0,845[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]17[/TD]
[TD]0[/TD]
[TD]59[/TD]
[TD]371[/TD]
[TD]Firenze[/TD]
[TD]58.20[/TD]
[TD]0[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]16[/TD]
[TD]2[/TD]
[TD]60[/TD]
[TD]413[/TD]
[TD]Firenze[/TD]
[TD]53[/TD]
[TD]0,235[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]15[/TD]
[TD]0[/TD]
[TD]45[/TD]
[TD]365[/TD]
[TD]Firenze[/TD]
[TD]35.54[/TD]
[TD]0[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]14[/TD]
[TD]3[/TD]
[TD]43[/TD]
[TD]436[/TD]
[TD]Firenze[/TD]
[TD]44.70.6[/TD]
[TD]0,373[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]13[/TD]
[TD]3[/TD]
[TD]59[/TD]
[TD]446[/TD]
[TD]Firenze[/TD]
[TD]46.71[/TD]
[TD]0,381[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]12[/TD]
[TD]26[/TD]
[TD]46[/TD]
[TD]472[/TD]
[TD]Firenze[/TD]
[TD]86.40.76[/TD]
[TD]3,495[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]11[/TD]
[TD]9[/TD]
[TD]39[/TD]
[TD]511[/TD]
[TD]Firenze[/TD]
[TD]3[/TD]
[TD]1,31[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]10[/TD]
[TD]4[/TD]
[TD]43[/TD]
[TD]526[/TD]
[TD]Firenze[/TD]
[TD]42.57[/TD]
[TD]0,599[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]9[/TD]
[TD]11[/TD]
[TD]36[/TD]
[TD]574[/TD]
[TD]Firenze[/TD]
[TD]7.49.43.34[/TD]
[TD]1,798[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]8[/TD]
[TD]4[/TD]
[TD]42[/TD]
[TD]567[/TD]
[TD]Firenze[/TD]
[TD]17.37[/TD]
[TD]0,646[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]7[/TD]
[TD]2[/TD]
[TD]48[/TD]
[TD]612[/TD]
[TD]Firenze[/TD]
[TD]65.33.89.72.1[/TD]
[TD]0,349[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]6[/TD]
[TD]1[/TD]
[TD]36[/TD]
[TD]674[/TD]
[TD]Firenze[/TD]
[TD]81.41.2.60[/TD]
[TD]0,192[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]5[/TD]
[TD]6[/TD]
[TD]51[/TD]
[TD]691[/TD]
[TD]Firenze[/TD]
[TD]5.32.14.83.31[/TD]
[TD]1,181[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]4[/TD]
[TD]1[/TD]
[TD]31[/TD]
[TD]711[/TD]
[TD]Firenze[/TD]
[TD]47.22.66.88.24[/TD]
[TD]0,203[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]3[/TD]
[TD]5[/TD]
[TD]26[/TD]
[TD]710[/TD]
[TD]Firenze[/TD]
[TD]36.10.78.52[/TD]
[TD]1,011[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]2[/TD]
[TD]0[/TD]
[TD]25[/TD]
[TD]763[/TD]
[TD]Firenze[/TD]
[TD]63.48.67.50[/TD]
[TD]0[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]1[/TD]
[TD]0[/TD]
[TD]22[/TD]
[TD]853[/TD]
[TD]Firenze[/TD]
[TD]87.68.23.9.28[/TD]
[TD]0[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]0[/TD]
[TD]7[/TD]
[TD]18[/TD]
[TD]882[/TD]
[TD]Firenze[/TD]
[TD]77.55.12.13.51[/TD]
[TD]1,758[/TD]
[/TR]
[/TABLE]
Guardando la tabella vediamo che i numeri della cifra1 che a noi interessano, sono presenti ai ritardi di rigo 0-3-5-6-7-8-13-18. Nell’estrazione del 25/01/2018 sulla ruota di Firenze sortisce il numero 81 facente parte della nostra formazione. Guardiamo la tabella e vediamo che l'’81 si trovava al ritardo di rigo 6. A quel punto il ritardo attuale del rigo 6 diventa 0, mentre i ritardi di rigo 0-3-5-7-8-13-18, incrementano il ritardo che avevano di 1 in quanto i numeri della cifra1 presenti a quei righi non sono sortiti. Per effetto di tali cambiamenti, la nuova tabella aggiornata al 25/01/2018 sarà la seguente [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 537"]
[TR="class: cke_show_border"]
[TD="colspan: 6"]Firenze cifra1 ( 1-10-11-12-13-14-15-16-17-18-19-21-31-41-51-61-71-81-) aggiornata al 25/01/18[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[TD] [/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]num. estr.[/TD]
[TD]data[/TD]
[TD]rigo[/TD]
[TD]ritardo attuale[/TD]
[TD]data ultimo sfaldamento[/TD]
[TD]num. sortito[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]147[/TD]
[TD]09/12/2017[/TD]
[TD]20[/TD]
[TD]8[/TD]
[TD]16/11/2017[/TD]
[TD]41[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]148[/TD]
[TD]12/12/2017[/TD]
[TD]19[/TD]
[TD]7[/TD]
[TD]21/11/2017[/TD]
[TD]17[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]149[/TD]
[TD]14/12/2017[/TD]
[TD]18[/TD]
[TD]5[/TD]
[TD]04/01/2018[/TD]
[TD]17[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]150[/TD]
[TD]16/12/2017[/TD]
[TD]17[/TD]
[TD]0[/TD]
[TD]23/01/2018[/TD]
[TD]12[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]151[/TD]
[TD]19/12/2017[/TD]
[TD]16[/TD]
[TD]6[/TD]
[TD]27/12/2017[/TD]
[TD]41[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]152[/TD]
[TD]21/12/2017[/TD]
[TD]15[/TD]
[TD]0[/TD]
[TD]20/01/2018[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]153[/TD]
[TD]23/12/2017[/TD]
[TD]14[/TD]
[TD]33[/TD]
[TD]06/07/2017[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]154[/TD]
[TD]27/12/2017[/TD]
[TD]13[/TD]
[TD]9[/TD]
[TD]16/12/2017[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]155[/TD]
[TD]28/12/2017[/TD]
[TD]12[/TD]
[TD]12[/TD]
[TD]23/11/2017[/TD]
[TD]16[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]156[/TD]
[TD]30/12/2017[/TD]
[TD]11[/TD]
[TD]3[/TD]
[TD]02/01/2018[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]1[/TD]
[TD]02/01/2018[/TD]
[TD]10[/TD]
[TD]13[/TD]
[TD]14/11/2017[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]2[/TD]
[TD]04/01/2018[/TD]
[TD]9[/TD]
[TD]10[/TD]
[TD]05/12/2017[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]3[/TD]
[TD]08/01/2018[/TD]
[TD]8[/TD]
[TD]9[/TD]
[TD]07/12/2017[/TD]
[TD]71[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]4[/TD]
[TD]09/01/2018[/TD]
[TD]7[/TD]
[TD]2[/TD]
[TD]16/01/2018[/TD]
[TD]10[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]5[/TD]
[TD]11/01/2018[/TD]
[TD]6[/TD]
[TD]0[/TD]
[TD]25/01/2018[/TD]
[TD]81[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]6[/TD]
[TD]13/01/2018[/TD]
[TD]5[/TD]
[TD]23[/TD]
[TD]21/10/2017[/TD]
[TD]16[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]7[/TD]
[TD]16/01/2018[/TD]
[TD]4[/TD]
[TD]27[/TD]
[TD]07/10/2017[/TD]
[TD]61[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]8[/TD]
[TD]18/01/2018[/TD]
[TD]3[/TD]
[TD]5[/TD]
[TD]11/01/2018[/TD]
[TD]14[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]9[/TD]
[TD]20/01/2018[/TD]
[TD]2[/TD]
[TD]33[/TD]
[TD]23/09/2017[/TD]
[TD]13[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]10[/TD]
[TD]23/01/2018[/TD]
[TD]1[/TD]
[TD]8[/TD]
[TD]30/12/2017[/TD]
[TD]41[/TD]
[/TR]
[TR="class: cke_show_border"]
[TD]11[/TD]
[TD]25/01/2018[/TD]
[TD]0[/TD]
[TD]26[/TD]
[TD]31/10/2017[/TD]
[TD]51[/TD]
[/TR]
[/TABLE]
Questo è tutto. Che dici Luigi da profano ho detto solo mi….ate? Mi auguro di no, se script sarà, che abbia le caratteristiche della tabella di output dello script “ritardo di rigo4 ls“.
Grazie ancora per quello che SEI e che FAI per noi utenti del forum
 
Ultima modifica:
ciao Superbone , scusa se ti seguo solo ora ma avevo da fare sul programma , ti sei espresso con perfetta padronanza in italiano pertanto penso di aver capito la tua richiesta.
Ho modificato lo script , prova a verificare.
Un saluto

Codice:
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq
Dim aEstrTA
Class clsRigo
    Private aRitardi
    Private aIdEstr
    Private aNumUscito
    Private nUscite
Sub class_initialize
    nUscite = 0
    ReDim aRitardi (nUscite)
    ReDim aIdEstr (nUscite)
    ReDim aNumUscito (nUscite)
End Sub
Public Property Get Uscite
    Uscite = nUscite
End Property
Sub AddRitardo (nRitardo , idEstr , NumUscito )
    nUscite = nUscite +1
    ReDim Preserve aRitardi ( nUscite )
    ReDim Preserve aIdEstr ( nUscite )
    ReDim Preserve aNumUscito ( nUscite )
    aRitardi (nUscite) = nRitardo
    aIdEstr (nUscite) =idEstr
    aNumUscito ( nUscite ) =NumUscito
End Sub
Function GetDati (nUscita , sRetData , nRetRitardo ,sRetNum )
    sRetData = GetInfoEstrazione (aIdEstr(nUscita) )
    nRetRitardo = aRitardi (nUscita )
    sRetNum = aNumUscito(nUscita)
End Function
End Class
Sub Main
    Select Case ScegliProcedura
    Case 0
    ScriviIstruzioni
    Case 1
    VisualizzaProgressione
    Case 2
    Call Analisi(True)
    Case 3
    Call Analisi(False)
    End Select
End Sub
Sub InitTabAnalitico(Inizio,Fine)
    Dim k,r,e,i
    ReDim aEstrTA(Fine,12,5)
    Call GeneraAnaliticoTurbo(Inizio)
    For k = 230 To 0 Step - 1
        i = Inizio - k
        For r = 1 To 12
            If r <> 11 Then
                For e = 1 To 5
                    aEstrTA(i,r,e) = TabelloneAnaliticoTurbo(k,r,e)
                Next
            End If
        Next
    Next
End Sub
Sub AggiornaTabAna(idEstr)
    Dim k,r,e,i
    Dim aNum,aBNum,nElim,nLimite
    nLimite = idEstr - 230
    For r = 1 To 12
        If r <> 11 Then
            Call GetArrayNumeriRuota(idEstr,r,aNum)
            If aNum(1) > 0 Then
                aBNum = ArrayNumeriToBool(aNum)
                nElim = 0
                ' k = idEstr To idEstr -230 Step -1
                k = idEstr
                For e = 1 To 5
                    aEstrTA(k,r,e) = aNum(e)
                Next
                Do While nElim < 5 And k >= nLimite
                    k = k - 1
                    For e = 1 To 5
                        If aBNum(aEstrTA(k,r,e)) Then
                            aEstrTA(k,r,e) = 0
                            nElim = nElim + 1
                            'If nElim = 5 Then Exit For
                        End If
                    Next
                Loop
            End If
            'Next
        End If
    Next
End Sub
Sub Analisi(bEseguiAnalisi )
    Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp
    Dim cMaxRigo,cSorte
    Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPostaIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiProgressione
    Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRigo,nRetRitRigo
    ReDim aPoste(0)
    ReDim aRetRigheProgr(0)
    Dim aBNumEstrSucc
    Dim t
    Dim collSeqRitardi , sKey
    Dim cRigo
    Dim nMaxRigheTbElencoRit
    Dim aNumeriSel , aNumTmp , bNumPresente ,sNumUsciti
    Call ScegliNumeri ( aNumTmp)
    aNumeriSel = ArrayNumeriToBool ( aNumTmp)
    nMaxRigheTbElencoRit = 100
    cIdRit = 0
    cIdRitMax = 1
    cIdFreq = 3
    cMaxRigo = 80
    cSorte = 1
    nIdProg = 0
    nGiocateTot = 0
    bSuperataProg = False
    Ini = EstrazioneIni
    Fin = EstrazioneFin
    nDaFare = Fin -(Ini - 1)
    If bEseguiAnalisi Then
        nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
        nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza Minimo al quale la giocata viene eseguita","IcMin",5))
        nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
        nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
        nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))
        If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione) = False Then Exit Sub
        Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
    End If
    ReDim abRuote(12)
    If ScegliRuote(Nothing,abRuote) <= 0 Then
        MsgBox "Ruote non selezionate",vbCritical
        Exit Sub
    End If
    t = Timer
    Call InitTabAnalitico(Ini,Fin)
    ReDim aRitPerRigo(cMaxRigo,12,3)
    Set collSeqRitardi = GetNewCollection
    For idEstr = Ini To Fin - 1
        ReDim aNum(5)
        'Call GeneraAnaliticoTurbo(idEstr)
        Call AggiornaTabAna(idEstr)
        nFatte = nFatte + 1
        ' blocco Analisi giocate ==============================
        If bEseguiAnalisi Then
            If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
                If GetNumeroDaGiocare(idEstr,aRitPerRigo,nFatte,nIndiceConvMin,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo) Then
                    nIdProg = nIdProg + 1
                    If nIdProg <= nColpiProgressione Then
                        nGiocateTot = nGiocateTot + 1
                        sTmp = FormatSpace(nGiocateTot,5) & " - "
                        sTmp = sTmp & GetInfoEstrazione(idEstr) & " Num : " & Format2(nNumInGioc) & " "
                        sTmp = sTmp & SiglaRuota(nRuotaInGioc)
                        sTmp = sTmp & " I.C. : " & FormatSpace(nRetIC,5,True)
                        sTmp = sTmp & " Rigo : " & FormatSpace(nRetIdRigo,5,True)
                        sTmp = sTmp & " Ritardo : " & FormatSpace(nRetRitRigo,5,True)
                        sTmp = sTmp & " Costo : " & aPoste(nIdProg)
                        Call Scrivi(sTmp)
                        nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
                        If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato
                        If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
                            nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
                            nTotVincita = nTotVincita + nVincitaParz
                            sTmp = "VINCENTE ! Vinti : " & nVincitaParz
                            sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
                            sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
                            sTmp = sTmp & " TotVincita : " & nTotVincita
                            Call Scrivi(sTmp,True,,vbYellow,vbRed)
                            nIdProg = 0
                        End If
                    Else
                        Scrivi "Superati i limiti della progressione impostata. Termine analisi"
                        bSuperataProg = True
                    End If
                End If
            End If
        End If
        '======================================================
        For nRuota = 1 To 12
            If nRuota <> 11 And abRuote(nRuota) Then
                Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
                'ReDim aBNumEstrSucc(90)
                'For p = 1 To 5
                'aBNumEstrSucc(aNum(p)) = True
                'Next
                aBNumEstrSucc = ArrayNumeriToBool(aNum)
                For nRit = 0 To cMaxRigo
                    nSfald = 0
                    'bValida = False
                    bNumPresente = False
                    sNumUsciti = ""
                    For p = 1 To 5
                        'n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
                        n = TabelloneAnaliticoInterno(idEstr,nRit,nRuota,p)
                        If aNumeriSel (n) Then
                            'If n >0 Then bValida = True
                            If n > 0 Then
                                bNumPresente = True
                                If aBNumEstrSucc(n) Then
                                    nSfald = nSfald + 1
                                    sNumUsciti = sNumUsciti & n & "."
                                End If
                            End If
                        End If
                    Next
                    'If bValida Then
                    If bNumPresente Then

                        If nSfald >= cSorte Then
                            sNumUsciti = RimuoviLastChr(sNumUsciti ,".")
                            sKey = "k" & nRit & "_" & nRuota
                            If GetItemCollection( collSeqRitardi , sKey , cRigo )Then
                                Call cRigo.AddRitardo(aRitPerRigo(nRit,nRuota,cIdRit) ,idEstr+1 ,sNumUsciti)

                            Else
                                Set cRigo = New clsRigo
                                Call cRigo.AddRitardo(aRitPerRigo(nRit,nRuota,cIdRit) ,idEstr+1 ,sNumUsciti )
                                Call AddItemColl(collSeqRitardi,cRigo ,sKey)
                            End If
                            If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
                                aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
                            End If
                            aRitPerRigo(nRit,nRuota,cIdRit) = 0
                            aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
                        Else
                            aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
                        End If
                    End If
                    'End If
                    If ScriptInterrotto Then Exit For
                Next
            End If
            If ScriptInterrotto Then Exit For
        Next
        Call AvanzamentoElab(1,nDaFare,nFatte)
        If ScriptInterrotto Then Exit For
    Next
    If bEseguiAnalisi Then
        Call Scrivi
        Call Scrivi("Giocate eseguite    : " & nGiocateTot)
        Call Scrivi("Massima esposizione : " & nMassimaEspos)
        Call Scrivi("Vincita netta       : " & nTotVincita)
        Call Scrivi
    End If
    ReDim aV(8)
    aV(1) = "Rigo"
    aV(2) = "Ritardo"
    aV(3) = "RitardoMax"
    aV(4) = "Frequenza"
    aV(5) = "Ruota"
    aV(6) = "NumPresRigoAttuale"
    aV(7) = "IndiceConv"
    aV(8) = "Elenco ritardi"
    'Call GeneraAnaliticoTurbo(Fin)
    Call AggiornaTabAna(Fin)
    Messaggio "Creazione tabella"
    If MsgBox("Mostrare solo le righe  alla cui Posizione nel Tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
        bMostraSoloRigheConNimeri = True
    End If
    DoEventsEx
    Call InitTabella(aV,vbBlue ,,,vbWhite)
    For nRuota = 1 To 12
        If nRuota <> 11 And abRuote(nRuota) Then
            For k = 0 To cMaxRigo
                aV(1) = k
                aV(2) = aRitPerRigo(k,nRuota,cIdRit)
                aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
                aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
                aV(5) = NomeRuota(nRuota)
                sNum = ""
                For p = 1 To 5
                    'n = TabelloneAnaliticoTurbo(k,nRuota,p)
                    n = TabelloneAnaliticoInterno(Fin,k,nRuota,p)
                    sNum = Iif(n > 0,sNum & n & ".",sNum)
                Next
                sNum = RimuoviLastChr(sNum,".")
                bValida = False
                If bMostraSoloRigheConNimeri Then
                    If sNum <> "" Then bValida = True
                Else
                    bValida = True
                End If
                If bValida Then
                    sKey = "k" & k & "_" & nRuota
                    aV(6) = sNum
                    aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
                    aV(8) = GetTestoLink ( sKey ,"Elenco ritardi")
                    Call AddRigaTabella(aV)
                    'ReDim aV(7)
                    'sKey = "k" & k & "_" & nRuota
                    'If GetItemCollection (collSeqRitardi ,sKey ,cRigo) Then
                    'aV(1) = cRigo.GetElencoRitardi
                    'Call AddRigaTabella(aV)
                    'End If
                End If
            Next
        End If
    Next
    Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
    Call Scrivi("Fine   : " & GetInfoEstrazione(Fin))
    Call Messaggio ("Creazione tabella ")
    Call CreaSezione  ( "Ritardi")
    Call CreaTabella(1)
    Call ChiudiSezione
    Call Messaggio ("Creazione tabelline ultimi ritardi")
    For nRuota = 1 To 12
        If nRuota <> 11 And abRuote(nRuota) Then
            For k = 0 To cMaxRigo
                sKey = "k" & k & "_" & nRuota
                If GetItemCollection (collSeqRitardi ,sKey ,cRigo) Then
                    Call CreaSezione  ( sKey)
                    Call scriviElencoRitardi (cRigo ,nRuota , k,nMaxRigheTbElencoRit)
                    Call Scrivi (GetTestoLink ( "Ritardi" ,"Tabellone"))
                    Call ChiudiSezione
                End If
            Next
        End If
        Call AvanzamentoElab ( 1,12,nRuota )
    Next
    Call Scrivi(Timer - t)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)
    ReDim aV(0)
    Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
    GetCapitaleImpegnato = CDbl(Trim(aV(4)))
End Function
Function GetVincitaNetta(nIdProg,aRigheProgr)
    ReDim aV(0)
    Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
    GetVincitaNetta = CDbl(Trim(aV(7)))
End Function
Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
    Dim k
    ReDim aNum(0)
    Dim aBNum
    Dim bRet
    bRet = False
    Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
    aBNum = ArrayNumeriToBool(aNum)
    'For k = 1 To 5
    'If aNum(k) = nNumGiocato Then
    'bRet = True
    'Exit For
    'End If
    'Next
    'VerificaGiocata = bRet
    VerificaGiocata = aBNum(nNumGiocato)
End Function
Function GetNumeroDaGiocare(idEstr,aRitPerRigo,nFatte,nIndiceConvMin,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo)
    Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov,nNumDaGioc
    nIndiceConvTrov = nIndiceConvMin
    nRetNumInGioc = 0
    nRetRuotaInGioc = 0
    nRetIC = 0
    nRetIdRigo = 0
    nRetRitRigo = 0
    For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
        For nRuota = 1 To 12
            If nRuota <> 11 Then
                nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
                If nIc >= nIndiceConvTrov Then
                    nQ = 0
                    nNumDaGioc = 0
                    For p = 1 To 5
                        'n = TabelloneAnaliticoTurbo(k,nRuota,p)
                        n = TabelloneAnaliticoInterno(idEstr,k,nRuota,p)
                        If n > 0 Then
                            nNumDaGioc = n
                            nQ = nQ + 1
                            If nQ > 1 Then Exit For
                        End If
                    Next
                    If nQ = 1 Then
                        nRetNumInGioc = nNumDaGioc
                        nRetRuotaInGioc = nRuota
                        nIndiceConvTrov = nIc
                        nRetIC = nIndiceConvTrov
                        nRetIdRigo = k
                        nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
                    End If
                End If
            End If
        Next
    Next
    GetNumeroDaGiocare = nRetNumInGioc > 0
End Function
Function ScegliProcedura()
    Dim aVoci
    aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
    ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
    Dim sTesto
    sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
    sTesto = sTesto & "nel programma." & vbCrLf
    sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf
    sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa  ruota esce" & vbCrLf
    sTesto = sTesto & "uno dei numeri In esso contenuti" & vbCrLf
    Call Scrivi(sTesto)
    sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
    sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf
    Call Scrivi(sTesto)
    sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
    sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
    sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
    sTesto = sTesto & "Indicando un valore Minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
    sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al Minimo previsto." & vbCrLf
    sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
    sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto In cui sia presente un solo numero." & vbCrLf
    sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
    sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf
    Call Scrivi(sTesto)
    sTesto = "Per cercare di non andare In perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
    sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
    sTesto = sTesto & "modeste per non dire irrisorie In confronto al capitale esposto al rischio." & vbCrLf
    Call Scrivi(sTesto,True,,,vbRed)
End Sub
Sub VisualizzaProgressione
    Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
    ReDim aPoste(0)
    ReDim aRetRigheProgr(0)
    nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
    nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
    nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
    If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
        Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
        For k = 0 To UBound(aRetRigheProgr)
            Call Scrivi(aRetRigheProgr(k))
        Next
    Else
        MsgBox "Parametri non validi",vbCritical
    End If
End Sub
Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione)
    Dim sMsg
    sMsg = ""
    If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
        sMsg = "Prima estrazione di gioco non valida"
    End If
    If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
        sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
    End If
    If nPostaIniziale <= 0 Then
        sMsg = "Posta iniziale non valida"
    End If
    If nIndiceConvMin <= 0 Then
        sMsg = "Indice convenienza Minimo non valido"
    End If
    If nColpiProgressione <= 0 Then
        sMsg = "Impostare il numero di colpi per la progressione"
    End If
    If sMsg <> "" Then
        MsgBox sMsg,vbCritical
    Else
        VerificaParametriGioco = True
    End If
End Function
Function TabelloneAnaliticoInterno(IdEstr,Rit,nRuota,nPos)
    Dim i
    i = IdEstr - Rit
    TabelloneAnaliticoInterno = aEstrTA(i,nRuota,nPos)
End Function
Sub CreaSezione (sNome )
    Dim s
    s = "<div id =""" & sNome & """>"
    Scrivi s
End Sub
Sub ChiudiSezione
    Dim s
    s = "</div>"
    Scrivi s
End Sub
Function GetTestoLink (sNomeSez , sDescr)
    Dim s
    s = "<a href=""#"  & sNomeSez   & """>" & sDescr & "</a>"
    GetTestoLink = s
End Function
Sub  scriviElencoRitardi (cRigo ,nRuota , nRigo ,nMaxRigheTb)
    Dim k ,sData , nRit ,sNumUsciti
    ReDim aV(3)
    ReDim aColSpan(3)
    aColSpan(1) = 3
    aColSpan(2) = 0
    aColSpan(3) = 0

    aV(1) = NomeRuota (nRuota ) & " Rigo " & nRigo
    Call InitTabella ( aV , vbRed ,,,vbWhite,"Arial" ,aColSpan )
    aV(1) = "Data" : aV(2) = "Rit" : aV(3) = "Sortiti"
    Call AddRigaTabella (aV,vbYellow)
    For k = cRigo.Uscite To 1 Step -1
        Call cRigo.GetDati( k,sData ,nRit , sNumUsciti)
        aV(1) = sData
        aV(2) = nRit
        aV(3) = sNumUsciti
        Call AddRigaTabella (aV)
    Next
    Call CreaTabella (,,,nMaxRigheTb)
End Sub
 
LuigiB sei GRANDE!!!!!!!!!!!!
Script perfetto e funzionante proprio come desideravo. La mia vista ti è grata.
Addirittura i complimenti per il mio italiano ( ho impiegato un giorno per metter su tutto il discorso, ah-ah-ah ).
GRAZIE ancora di vero cuore.
SEI UN MITO!!!
 
superbone;n2100926 ha scritto:
LuigiB sei GRANDE!!!!!!!!!!!!
Script perfetto e funzionante proprio come desideravo. La mia vista ti è grata.
Addirittura i complimenti per il mio italiano ( ho impiegato un giorno per metter su tutto il discorso, ah-ah-ah ).
GRAZIE ancora di vero cuore.
SEI UN MITO!!!
A me non gira, mi daresti dei parametri che mi facciano uscire un output,
grazie
claudio
 
Ultima modifica:
Ciao claudio8 e fillotto,
vi dico passo passo come ho proceduto.
Ho evidenziato il testo dello script di cui sopra, col tasto destro del mouse ho fatto copia, nel programma Spaziometria in sequenza gestione script-elabora script, nella finestra di inserimento del codice ho fatto incolla col tasto destro del mouse.
Una volta visualizzato il testo, ho cancellato le prime due righe Option Explicit e Sub Main, e l'ultima riga End Sub.
 
Ultima modifica:
superbone;n2100937 ha scritto:
Ciao claudio8 e fillotto,
vi dico passo passo come ho proceduto.
Ho evidenziato il testo dello script di cui sopra, col tasto destro del mouse ho fatto copia, nel programma Spaziometria in sequenza gestione script-elabora script, nella finestra di inserimento del codice ho fatto incolla col tasto destro del mouse.
Una volta visualizzato il testo, ho cancellato le prime due righe Option Explicit e Sub Main, e l'ultima riga End Sub.

.....si ma lo hai fatto girare? e con quei parametri?
 
Ottimo , mi fa piacere che ti vada bene.
Claudio e filotto che vuol dire non gira ? io ho provatro sia con spaziometria sia con il nuovo programma e funziona bene , non ci sono particolari parametri ..inizio e fine li prende dal default le altre cose le chiede lo script.
 
[TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
[TR]
[TD="width: 755"]SPMT vers. 1.6.8_Agg.Web e relativo plugin SVP vers. 1.0.56 e Plugin_FTP vers. 1.0 e SpazioScript vers.1.0.8[/TD]
[/TR]
[TR]
[TD]====================== [/TD]
[/TR]
[TR]
[TD]Buona sera a TUTTI ,[/TD]
[/TR]
[TR]
[TD] anch'io ho provato lo script e funziona perfettamente.[/TD]
[/TR]
[TR]
[TD]Lanci lo script metti "solo statistica" oppure le altre info[/TD]
[/TR]
[TR]
[TD]poi metti i numeri che vuoi …. Decina dello zero[/TD]
[/TR]
[TR]
[TD]poi la ruota che vuoi …. Napoli[/TD]
[/TR]
[TR]
[TD]poi ti chiede se vuoi i numeri effettivi del tabellone …. SI[/TD]
[/TR]
[TR]
[TD]e poi esce a video ….. Le risultanze dell'elaborazione.[/TD]
[/TR]
[TR]
[TD]==============[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona serata a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD] Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
 
Luigi,
ho proceduto come specificato dal caro Silol che saluto, ma non gira, mi da errore come da allegato screenshot
9 - indice non incluso nell'intervallo: ' - 229 '
linea: 54 colonna: 5
errore di nroun time

Ritardi-errore indice.GIF

ciao
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 17 gennaio 2025
    Bari
    10
    87
    77
    23
    60
    Cagliari
    75
    33
    60
    24
    15
    Firenze
    45
    34
    66
    41
    17
    Genova
    05
    65
    15
    53
    86
    Milano
    20
    84
    74
    76
    01
    Napoli
    90
    29
    38
    52
    68
    Palermo
    33
    36
    02
    20
    68
    Roma
    68
    12
    59
    07
    74
    Torino
    03
    22
    29
    90
    28
    Venezia
    81
    24
    35
    18
    03
    Nazionale
    06
    31
    35
    89
    74
    Estrazione Simbolotto
    Bari
    14
    24
    17
    13
    08
Indietro
Alto