Novità

metodo delle triple di cadenza di Ron Colman

Buongiorno a tutti,

Vorrei chiedere a LuigiB se era possibile implementare il listato nel modo seguent :
Inserire anche le triple di figura.
Mettere un limite a scelta sulle giocate per esempio 19.
Le giocate che non vincono entro il limite, tornano al primo colpo.
Il denaro perso viene recuperato su dieci giocate in corso, in modo che con l'uscita del numero oltre alla vincita si ottiene un parziale recupero del denaro.
Spero di essere stato chiaro .
Grazie
Sergio
 
in verità non ho capito molto.
Che vuol dire mettere un limite sulle giocate ?
Che vuol dire che le giocate che non vincono ripartono da 1

l'unica cosa chiara è che vorresti anche le triple di figura.

personlaemte il metodo mi sembra molto rischioso e proporzionalmente al capitale necessario per attuarlo rende poco e fa appunto rischiare tanto..
basta una sola giocata che non va in porto e si abbattono eventuali vincite precedenti in un colpo solo ...
poi non so se con sta faccenda che dicevi delle 10 combinazioni in gioco si possa recuperare qualcosa ma dubito ...
 
Le giocate che non vincono entro il limite imposto ritornano con la puntata iniziale .
Per quanto riguarda il recupero su 10 giocate qualsiasi ,basta suddividere la perdita per 10 e aumentare la posta in modo tale da recuperare la decima parte della perdita.
Metere in gioco anche le triple di figura serve ad avere a disposizione molte giocate per fare il recupero
 
Buon giorno,Grazie LuigiB per il grande lavoro e la pubblicazione dello script,desideravo saper se era possibile far fare la ricerca e quindi la previsione solo PER UNA RUOTA.
Grazie se mi rispondi
Saluti
Serpico90
 
Ultima modifica:
il metodo prevedeva di prendere 2 ruote individuare 10 triple di cadenza (una per ogni numero dellesuddette ruote) individuare due numeri della tripla da giocare.
Poi aspettare che delle 10 giocate se ne sfaldassero 5 e appena sfaldata la quinta iniziare il gioco sulel rtimanenti.
Farl ocon una ruota sola è tecnicamente possibile , il metodo non è piu lo stesso naturalmente.
Ho fatto lo script perche ogni tanto mi piace farli , in questo caso le pagine ingiallite del libro postato da Sergio mi hanno dato quel'input per iniziare ...
ma di sicuro non sto a presso a tutte le successive richieste e apete benissimo cheper come la penso io perfino i metodi che debbono ancora essere inventati non
valgono nulla (almeno fino a quando le regole del lotto rimarrann o quelle di oggi) esattamente come questo... d'altra parte ho cercato di insegnarvi a programmare proprio per levarvi da soli certe cuoriosità ...

ciao
 
Ultima modifica di un moderatore:
Grazie per la risposta.
Io non sono un programmatore ,per la verita ho provato a ridurre da due a uno le ruote ,ma non parte ,perchè mi dice devi sciegliere due ruote.
Ma quando dici "tecnicamente possibile" cosa si deve cambiare?
Poi lo so che le regole del lotto sono contro il giocatore ,ma ogni tanto poter scoprire qualcosa di nuovo penso che sia un desiderio di tutti.
Ti saluto
Serpico 90
 
Grazie per la risposta.
Io non sono un programmatore ,per la verita ho provato a ridurre da due a uno le ruote ,ma non parte ,perchè mi dice devi sciegliere due ruote.
Ma quando dici "tecnicamente possibile" cosa si deve cambiare?
Poi lo so che le regole del lotto sono contro il giocatore ,ma ogni tanto poter scoprire qualcosa di nuovo penso che sia un desiderio di tutti.
Ti saluto
Serpico 90

Certo che è un desiderio di tutti .. il punto è che non c'è nulla di nuovo da scoprire ...:-) la modifica per farlo girare a due ruote credo sia banale specie se fatta con l'accetta..
 
Chiedo scusa .....lungi da polemiche o altro...non è mio intendimento, io chiedevo se era possibile una cosa semplice ....anche se il metodo non è più lo stesso, fare la ricerca PER UNA SOLA RUOTA anche se per te è banale io non ho nessuna Accetta.
NULLA di personale
ti saluto
 
nemmeno io faccio polemiche solo constatazioni ma non su te o altri .. sui metodi che risultano inutili ..
Forse cosi lo script funziona per una ruota sola ..non ne sono certo perche non l'ho provato

Codice:
Option Explicit
Class clsGruppoCombInGioco
	Private m_EstrazioneInizio
	Private m_EstrazioneInizioGioco
	Private collCombinazioni
	Sub Class_Initialize
		' codice
		Set collCombinazioni = GetNewCollection
		m_EstrazioneInizio = 0
		m_EstrazioneInizioGioco = 0
	End Sub
	Sub Class_Terminate
		' codice
		' codice
	End Sub
	Public Property Get EstrazioneInizio
		EstrazioneInizio = m_EstrazioneInizio
	End Property
	Public Property Let EstrazioneInizio(NewValue)
		m_EstrazioneInizio = NewValue
	End Property
	Public Property Get EstrazioneInizioGioco
		EstrazioneInizioGioco = m_EstrazioneInizioGioco
	End Property
	Public Property Let EstrazioneInizioGioco(NewValue)
		m_EstrazioneInizioGioco = NewValue
	End Property
	Public Property Get Combinazioni
		Set Combinazioni = collCombinazioni
	End Property
	Sub AddTripla(classeTripla)
		collCombinazioni.Add classeTripla
	End Sub
End Class
Class clsTripla
	Dim cEstrazioniRitroso
	Private aNumeri()
	Private abNumInGioco()
	Private m_Ruota
	Private m_NumeroBase
	Private m_PrimoNumeroTrovatoIndietro
	Private m_IdEstrPrimoNumeroTrovatoIndietro
	Private m_IdEstrEsito
	Private m_NumUsciti
	Private m_Scartata
	Sub Class_Initialize
		' codice
		ReDim abNumInGioco(90)
		m_IdEstrEsito = 0
		m_NumUsciti = ""
		m_PrimoNumeroTrovatoIndietro = ""
		m_IdEstrPrimoNumeroTrovatoIndietro = 0
		m_Scartata = False
		cEstrazioniRitroso = 20
	End Sub
	Sub Class_Terminate
		' codice
	End Sub
	Public Property Get Ruota
		Ruota = m_Ruota
	End Property
	Public Property Let Ruota(NewValue)
		m_Ruota = NewValue
	End Property
	Public Property Get NumeroBase
		NumeroBase = m_NumeroBase
	End Property
	Public Property Let NumeroBase(NewValue)
		m_NumeroBase = NewValue
	End Property
	Public Property Get Scartata
		Scartata = m_Scartata
	End Property
	Public Property Let Scartata(NewValue)
		m_Scartata = NewValue
	End Property
	Public Property Get IdEstrEsito
		IdEstrEsito = m_IdEstrEsito
	End Property
	Public Property Get PrimoNumeroTrovatoIndietro
		PrimoNumeroTrovatoIndietro = m_PrimoNumeroTrovatoIndietro
	End Property
	Public Property Get IdEstrPrimoNumeroTrovatoIndietro
		IdEstrPrimoNumeroTrovatoIndietro = m_IdEstrPrimoNumeroTrovatoIndietro
	End Property
	Public Property Get NumUsciti
		NumUsciti = m_NumUsciti
	End Property
	Public Property Get NumeriInGioco
		NumeriInGioco = ArrayBToString(abNumInGioco)
	End Property
	Private Sub ArrayNumToArrayBNum(aNum,abRetNum)
		Dim k
		ReDim abRetNum(90)
		For k = 1 To UBound(aNum)
			abRetNum(aNum(k)) = True
		Next
	End Sub
	Private Sub CopiaArray(aInput,aOutput)
		Dim k
		ReDim aOutput(UBound(aInput))
		For k = LBound(aInput) To UBound(aInput)
			aOutput(k) = aInput(k)
		Next
	End Sub
	Private Function ArrayBToString(abNum)
		Dim k
		Dim s
		s = ""
		For k = LBound(abNum) To UBound(abNum)
			If abNum(k) Then
				s = s & Format2(k) & "."
			End If
		Next
		If s <> "" Then
			ArrayBToString = Left(s,Len(s) - 1)
		Else
			ArrayBToString = ""
		End If
	End Function
	Sub SetNumeri(aNum)
		Dim k
		ReDim aNumeri(UBound(aNum))
		For k = 1 To UBound(aNum)
			aNumeri(k) = aNum(k)
		Next
	End Sub
	Sub IndividuaCoppiaDaGiocare(idEstrInizio)
		Dim k,e,nLottrone,nTrovati
		ReDim abNum(90)
		nTrovati = 0
		m_PrimoNumeroTrovatoIndietro = ""
		Call ArrayNumToArrayBNum(aNumeri,abNum)
		For k = idEstrInizio - 1 To idEstrInizio - cEstrazioniRitroso Step - 1
			For e = 1 To 5
				nLottrone = Estratto(k,m_Ruota,e)
				If nLottrone <> m_NumeroBase Then
					If abNum(nLottrone) Then
						abNum(nLottrone) = False
						m_PrimoNumeroTrovatoIndietro = m_PrimoNumeroTrovatoIndietro & nLottrone & " "
						m_IdEstrPrimoNumeroTrovatoIndietro = k
						nTrovati = nTrovati + 1
					End If
				End If
			Next
			If nTrovati > 0 Then
				Exit For
			End If
		Next
		If nTrovati = 0 Then
			' non ha trovato nessuno dei due
			abNum(m_NumeroBase) = False
		ElseIf nTrovati = 2 Then
			' li ha trovati tutti e due nella stessa estr
			ReDim abNum(90)
			For k = 1 To UBound(aNumeri)
				If aNumeri(k) <> m_NumeroBase Then
					abNum(aNumeri(k)) = True
				End If
			Next
		End If
		Call CopiaArray(abNum,abNumInGioco)
	End Sub
	Sub Verifica(idEstr)
		Dim e,nLottrone
		m_NumUsciti = ""
		For e = 1 To 5
			nLottrone = Estratto(idEstr,m_Ruota,e)
			If abNumInGioco(nLottrone) Then
				m_NumUsciti = m_NumUsciti & nLottrone & " "
				m_IdEstrEsito = idEstr
			End If
		Next
	End Sub
	Function GetNumeriInGioco(aRetNum)
		Dim k,nTrov
		ReDim aRetNum(0)
		nTrov = 0
		For k = 1 To 90
			If abNumInGioco(k) Then
				nTrov = nTrov + 1
				ReDim Preserve aRetNum(nTrov)
				aRetNum(nTrov) = k
			End If
		Next
	End Function
End Class
Sub Main
	Dim cColpiMax
	Dim idEstr,e,k,nLottrone
	Dim Inizio,Fine
	Dim GruppoCombInGioco
	Dim Tripla
	Dim nColpi
	Dim MatriceImporti
	ReDim aRuote(0)
	Dim nTipoAnalisi
	Dim nGiocateTotali
	Dim nEsitiPositivi
	
	Call LeggiMatriceProgressione(MatriceImporti)
	Inizio = EstrazioneIni
	Fine = EstrazioneFin
	nTipoAnalisi = ScegliTipoAnalisi
	idEstr = Inizio
	cColpiMax = 47
	cColpiMax = Int(InputBox("Inserire i colpi di gioco da 1 a 47","Colpi",cColpiMax))
	If nTipoAnalisi < 0 Or nTipoAnalisi > 1 Then
		MsgBox "Tipo analisi non valido"
		Exit Sub
	End If
	If cColpiMax <= 0 Or cColpiMax > 47 Then
		MsgBox "Colpi massimi non validi"
		Exit Sub
	End If
	If ScegliRuote(aRuote) = 1 Then
		ReDim Preserve aRuote(1)
		Do
			If VerificaCadenzeDiverse(idEstr,aRuote) Then
				Set GruppoCombInGioco = New clsGruppoCombInGioco
				GruppoCombInGioco.EstrazioneInizio = idEstr
				For k = 1 To UBound(aRuote)
					For e = 1 To 5
						nLottrone = Estratto(idEstr,aRuote(k),e)
						Set Tripla = New clsTripla
						ReDim aN(0)
						Call GetTriplaCadenzaByNum(nLottrone,aN)
						Call Tripla.SetNumeri(aN)
						Tripla.Ruota = aRuote(k)
						Tripla.NumeroBase = nLottrone
						Call Tripla.IndividuaCoppiaDaGiocare(idEstr)
						Call GruppoCombInGioco.AddTripla(Tripla)
					Next
				Next
				Do
					idEstr = idEstr + 1
					For Each Tripla In GruppoCombInGioco.Combinazioni
						If Tripla.Scartata = False Then
							Call Tripla.Verifica(idEstr)
							If Tripla.idEstrEsito <> 0 Then
								Tripla.Scartata = True
							End If
						End If
					Next
				Loop While ContaCombSortite(GruppoCombInGioco) < 3
				
				nGiocateTotali = nGiocateTotali + ContaCombNonSortite(GruppoCombInGioco)
				GruppoCombInGioco.EstrazioneInizioGioco = idEstr + 1
				nColpi = 0
				Do
					idEstr = idEstr + 1
					For Each Tripla In GruppoCombInGioco.Combinazioni
						If Tripla.idEstrEsito = 0 Then
							Call Tripla.Verifica(idEstr)
							If Tripla.idEstresito <> 0 Then
								nEsitiPositivi = nEsitiPositivi + 1
							End If
						End If
					Next
					nColpi = nColpi + 1
					If nColpi = cColpiMax Then Exit Do
				Loop While ContaCombSortite(GruppoCombInGioco) < 5
				
				Call ScriviProspetto(GruppoCombInGioco)
				If nTipoAnalisi = 1 Then
					Call GiocaCombinazioni(GruppoCombInGioco,cColpiMax,aRuote,MatriceImporti)
				End If
				
			Else
				idEstr = idEstr + 1
			End If
			Call Messaggio("Estrazione " & idEstr)
			Call AvanzamentoElab(Inizio,Fine,idEstr)
			If ScriptInterrotto Then Exit Do
		Loop While idEstr < Fine
		
		Call Scrivi
		Call Scrivi(String(100,"*"))
		Call Scrivi("Giocate totali                           : " & nGiocateTotali)
		Call Scrivi("Giocate con esito entro i colpi previsti : " & nEsitiPositivi & " (" & ProporzioneX(nEsitiPositivi,nGiocateTotali,100) & "%)")
		Call Scrivi
		Call Scrivi(String(100,"*"))
		

		
		If nTipoAnalisi = 1 Then Call ScriviResoconto
	Else
		MsgBox "Il metodo prevede di selexionare 2 ruote"
	End If
End Sub
Function ScegliTipoAnalisi
	ReDim aV(2)
	aV(0) = "Ricerca combinazioni"
	aV(1) = "Ricerca combinazioni + Simulazione giocate"
	ScegliTipoAnalisi = ScegliOpzioneMenu(aV,0)
End Function
Sub GetTriplaCadenzaByNum(n,aRetNum)
	Dim k
	ReDim aRetNum(3)
	If n >= 1 And n <= 30 Then
		aRetNum(1) = n
		aRetNum(2) = n + 30
		aRetNum(3) = n + 60
	ElseIf n >= 31 And n <= 60 Then
		aRetNum(1) = n - 30
		aRetNum(2) = n
		aRetNum(3) = n + 30
	ElseIf n >= 61 And n <= 90 Then
		aRetNum(1) = n - 60
		aRetNum(2) = n - 30
		aRetNum(3) = n
	End If
End Sub
Function VerificaCadenzeDiverse(idEstr,aRuote)
	Dim e,k,n,bRet,nLottrone
	bRet = True
	For k = 1 To UBound(aRuote)
		ReDim ab(30)
		For e = 1 To 5
			nLottrone = Estratto(idEstr,aRuote(k),e)
			ReDim aNum(0)
			Call GetTriplaCadenzaByNum(nLottrone,aNum)
			ab(aNum(1)) = True
		Next
		If ContaNumeriInArrayB(ab) <> 5 Then
			bRet = False
			Exit For
		End If
	Next
	VerificaCadenzeDiverse = bRet
End Function
Function ContaNumeriInArrayB(aB)
	Dim k,n
	n = 0
	For k = LBound(aB) To UBound(aB)
		If aB(k) Then n = n + 1
	Next
	ContaNumeriInArrayB = n
End Function
Function ContaCombSortite(GruppoCombInGioco)
	Dim tripla,n
	n = 0
	For Each tripla In GruppoCombInGioco.Combinazioni
		If Tripla.IdEstrEsito <> 0 Then
			n = n + 1
		End If
	Next
	ContaCombSortite = n
End Function
Function ContaCombNonSortite(GruppoCombInGioco)
	Dim tripla,n
	n = 0
	For Each tripla In GruppoCombInGioco.Combinazioni
		If Tripla.IdEstrEsito = 0 Then
			n = n + 1
		End If
	Next
	ContaCombNonSortite = n
End Function

Sub ScriviProspetto(GruppoCombInGioco)
	Dim Tripla
	ReDim aV(12)
	aV(1) = "Anno"
	aV(2) = "N°Estr"
	aV(3) = "Ruota"
	aV(4) = "Numero Base"
	aV(5) = "Uscite Prec"
	aV(6) = "Coppia in gioco"
	aV(7) = "Sortiti"
	aV(8) = "N°Estr"
	aV(9) = "Colpi"
	aV(10) = "Inizio gioco"
	aV(11) = "N°Estr"
	aV(12) = "Colpi"
	Call InitTabella(aV)
	For Each Tripla In GruppoCombInGioco.Combinazioni
		ReDim aV(12)
		aV(1) = Anno(GruppoCombInGioco.EstrazioneInizio)
		aV(2) = IndiceAnnuale(GruppoCombInGioco.EstrazioneInizio)
		aV(3) = SiglaRuota(Tripla.Ruota)
		aV(4) = Tripla.NumeroBase
		aV(5) = Tripla.PrimoNumeroTrovatoIndietro
		aV(6) = Tripla.NumeriInGioco
		aV(7) = Tripla.NumUsciti
		If Tripla.Scartata Then
			aV(8) = IndiceAnnuale(Tripla.IdEstrEsito)
			aV(9) =(Tripla.IdEstrEsito) - GruppoCombInGioco.EstrazioneInizio
		Else
			aV(10) = IndiceAnnuale(GruppoCombInGioco.EstrazioneInizioGioco)
			If Tripla.IdEstrEsito > 0 Then
				aV(11) = IndiceAnnuale(Tripla.IdEstrEsito)
				aV(12) =(Tripla.IdEstrEsito + 1) - GruppoCombInGioco.EstrazioneInizioGioco
			Else
				aV(11) = "-"
				aV(12) = "-"
			End If
		End If
		Call AddRigaTabella(aV)
	Next
	Call CreaTabella
End Sub
Sub GiocaCombinazioni(GruppoCombInGioco,cColpiMax,aRuote,MatriceImporti)
	Dim Tripla,k
	ReDim aNumInGioco(1)
	ReDim aRuota(1)
	ReDim aPoste(1)
	Dim idGiocata
	ReDim aGiocateDaInterr(1)
	For Each Tripla In GruppoCombInGioco.Combinazioni
		If Tripla.Scartata = False Then
			aRuota(1) = Tripla.Ruota
			ReDim aNumInGiocoTmp(0)
			Call Tripla.GetNumeriInGioco(aNumInGiocoTmp)
			For k = 1 To UBound(aNumInGiocoTmp)
				aNumInGioco(1) = aNumInGiocoTmp(k)
				idGiocata = idGiocata + 1
				If k = 1 Then
					aGiocateDaInterr(1) = idGiocata + 1
				ElseIf k = 2 Then
					aGiocateDaInterr(1) = idGiocata - 1
				End If
				Call ImpostaGiocata(idGiocata,aNumInGioco,aRuota,aPoste,cColpiMax,1,,aGiocateDaInterr)
				Call ImpostaProgressione(idGiocata,MatriceImporti)
				
			Next
			Call Gioca(GruppoCombInGioco.EstrazioneInizioGioco)
		End If
	Next
	'Call Gioca(GruppoCombInGioco.EstrazioneInizioGioco)

End Sub
Sub LeggiMatriceProgressione(aProgressioni)
	ReDim aProgressioni(10,255) ' preparo la matrice per leggere gli Importi di gioco
	aProgressioni(1,1) = 1.00
	aProgressioni(1,2) = 1.00
	aProgressioni(1,3) = 1.00
	aProgressioni(1,4) = 1.00
	aProgressioni(1,5) = 1.50
	aProgressioni(1,6) = 1.50
	aProgressioni(1,7) = 2.00
	aProgressioni(1,8) = 2.50
	aProgressioni(1,9) = 3.00
	aProgressioni(1,10) = 4.00
	aProgressioni(1,11) = 4.50
	aProgressioni(1,12) = 5.50
	aProgressioni(1,13) = 7.00
	aProgressioni(1,14) = 8.50
	aProgressioni(1,15) = 10.50
	aProgressioni(1,16) = 13.00
	aProgressioni(1,17) = 16.00
	aProgressioni(1,18) = 20.00
	aProgressioni(1,19) = 24.50
	aProgressioni(1,20) = 30.50
	aProgressioni(1,21) = 37.50
	aProgressioni(1,22) = 46.00
	aProgressioni(1,23) = 57.00
	aProgressioni(1,24) = 70.00
	aProgressioni(1,25) = 86.50
	aProgressioni(1,26) = 107.00
	aProgressioni(1,27) = 132.00
	aProgressioni(1,28) = 162.50
	aProgressioni(1,29) = 200.50
	aProgressioni(1,30) = 247.50
	aProgressioni(1,31) = 305.50
	aProgressioni(1,32) = 376.50
	aProgressioni(1,33) = 464.50
	aProgressioni(1,34) = 573.50
	aProgressioni(1,35) = 707.50
	aProgressioni(1,36) = 872.50
	aProgressioni(1,37) = 1076.50
	aProgressioni(1,38) = 1328.00
	aProgressioni(1,39) = 1638.50
	aProgressioni(1,40) = 2021.50
	aProgressioni(1,41) = 2494.00
	aProgressioni(1,42) = 3076.50
	aProgressioni(1,43) = 3795.50
	aProgressioni(1,44) = 4682.50
	aProgressioni(1,45) = 5777.00
	aProgressioni(1,46) = 7127.00
	aProgressioni(1,47) = 8792.50
End Sub
 
Ultima modifica di un moderatore:
ho aggiunto le triple di figura e dato la possibilita di modificare alcuni parmetri con input box.
Di piu non si puo fare quindi stop richieste.

Codice:
Option Explicit
Class clsGruppoCombInGioco
	Private m_EstrazioneInizio
	Private m_EstrazioneInizioGioco
	Private collCombinazioni
	Sub Class_Initialize
		' codice
		Set collCombinazioni = GetNewCollection
		m_EstrazioneInizio = 0
		m_EstrazioneInizioGioco = 0
	End Sub
	Sub Class_Terminate
		' codice
		' codice
	End Sub
	Public Property Get EstrazioneInizio
		EstrazioneInizio = m_EstrazioneInizio
	End Property
	Public Property Let EstrazioneInizio(NewValue)
		m_EstrazioneInizio = NewValue
	End Property
	Public Property Get EstrazioneInizioGioco
		EstrazioneInizioGioco = m_EstrazioneInizioGioco
	End Property
	Public Property Let EstrazioneInizioGioco(NewValue)
		m_EstrazioneInizioGioco = NewValue
	End Property
	Public Property Get Combinazioni
		Set Combinazioni = collCombinazioni
	End Property
	Sub AddTripla(classeTripla)
		collCombinazioni.Add classeTripla
	End Sub
End Class
Class clsTripla
	Dim cEstrazioniRitroso
	Private aNumeri()
	Private abNumInGioco()
	Private m_Ruota
	Private m_NumeroBase
	Private m_PrimoNumeroTrovatoIndietro
	Private m_IdEstrPrimoNumeroTrovatoIndietro
	Private m_IdEstrEsito
	Private m_NumUsciti
	Private m_Scartata
	Sub Class_Initialize
		' codice
		ReDim abNumInGioco(90)
		m_IdEstrEsito = 0
		m_NumUsciti = ""
		m_PrimoNumeroTrovatoIndietro = ""
		m_IdEstrPrimoNumeroTrovatoIndietro = 0
		m_Scartata = False
		cEstrazioniRitroso = 20
	End Sub
	Sub Class_Terminate
		' codice
	End Sub
	Public Property Get Ruota
		Ruota = m_Ruota
	End Property
	Public Property Let Ruota(NewValue)
		m_Ruota = NewValue
	End Property
	Public Property Get NumeroBase
		NumeroBase = m_NumeroBase
	End Property
	Public Property Let NumeroBase(NewValue)
		m_NumeroBase = NewValue
	End Property
	Public Property Get Scartata
		Scartata = m_Scartata
	End Property
	Public Property Let Scartata(NewValue)
		m_Scartata = NewValue
	End Property
	Public Property Get IdEstrEsito
		IdEstrEsito = m_IdEstrEsito
	End Property
	Public Property Get PrimoNumeroTrovatoIndietro
		PrimoNumeroTrovatoIndietro = m_PrimoNumeroTrovatoIndietro
	End Property
	Public Property Get IdEstrPrimoNumeroTrovatoIndietro
		IdEstrPrimoNumeroTrovatoIndietro = m_IdEstrPrimoNumeroTrovatoIndietro
	End Property
	Public Property Get NumUsciti
		NumUsciti = m_NumUsciti
	End Property
	Public Property Get NumeriInGioco
		NumeriInGioco = ArrayBToString(abNumInGioco)
	End Property
	Sub SetNumeri(aNum)
		Dim k
		ReDim aNumeri(UBound(aNum))
		For k = 1 To UBound(aNum)
			aNumeri(k) = aNum(k)
		Next
	End Sub
	Sub IndividuaCoppiaDaGiocare(idEstrInizio)
		Dim k,e,nLottrone,nTrovati
		ReDim abNum(90)
		nTrovati = 0
		m_PrimoNumeroTrovatoIndietro = ""
		Call ArrayNumToArrayBNum(aNumeri,abNum)
		For k = idEstrInizio - 1 To idEstrInizio - cEstrazioniRitroso Step - 1
			For e = 1 To 5
				nLottrone = Estratto(k,m_Ruota,e)
				If nLottrone <> m_NumeroBase Then
					If abNum(nLottrone) Then
						abNum(nLottrone) = False
						m_PrimoNumeroTrovatoIndietro = m_PrimoNumeroTrovatoIndietro & nLottrone & " "
						m_IdEstrPrimoNumeroTrovatoIndietro = k
						nTrovati = nTrovati + 1
					End If
				End If
			Next
			If nTrovati > 0 Then
				Exit For
			End If
		Next
		If nTrovati = 0 Then
			' non ha trovato nessuno dei due
			abNum(m_NumeroBase) = False
		ElseIf nTrovati = 2 Then
			' li ha trovati tutti e due nella stessa estr
			ReDim abNum(90)
			For k = 1 To UBound(aNumeri)
				If aNumeri(k) <> m_NumeroBase Then
					abNum(aNumeri(k)) = True
				End If
			Next
		End If
		Call CopiaArray(abNum,abNumInGioco)
	End Sub
	Sub Verifica(idEstr)
		Dim e,nLottrone
		m_NumUsciti = ""
		For e = 1 To 5
			nLottrone = Estratto(idEstr,m_Ruota,e)
			If abNumInGioco(nLottrone) Then
				m_NumUsciti = m_NumUsciti & nLottrone & " "
				m_IdEstrEsito = idEstr
			End If
		Next
	End Sub
	Function GetNumeriInGioco(aRetNum)
		Dim k,nTrov
		ReDim aRetNum(0)
		nTrov = 0
		For k = 1 To 90
			If abNumInGioco(k) Then
				nTrov = nTrov + 1
				ReDim Preserve aRetNum(nTrov)
				aRetNum(nTrov) = k
			End If
		Next
	End Function
End Class
Sub Main
	Dim cColpiMax
	Dim idEstr,e,k,nLottrone
	Dim Inizio,Fine
	Dim GruppoCombInGioco
	Dim Tripla
	Dim nColpi
	Dim MatriceImporti
	ReDim aRuote(0)
	Dim nTipoAnalisi
	Dim nGiocateTotali
	Dim nEsitiPositivi
	Dim nQCombDaAspettare
	Dim nQRuoteDaUsare
	Dim nCombMaxPossibili
	 
	Call LeggiMatriceProgressione(MatriceImporti)
	Inizio = EstrazioneIni
	Fine = EstrazioneFin
	nTipoAnalisi = ScegliTipoAnalisi
	nQRuoteDaUsare = Int(InputBox("Quante ruote usare","Quantità ruote","2"))
	nCombMaxPossibili = nQRuoteDaUsare * 5 * 2
	nQCombDaAspettare = Int(InputBox("Quante cmbinazioni aspettare su " & nCombMaxPossibili & " prima di giocare ?","Quantità combinazioni da aspettare",Int(nCombMaxPossibili /2)))
	cColpiMax = 47
	cColpiMax = Int(InputBox("Inserire i colpi di gioco da 1 a 47","Colpi",cColpiMax))
	idEstr = Inizio
	If nTipoAnalisi < 0 Or nTipoAnalisi > 1 Then
		MsgBox "Tipo analisi non valido"
		Exit Sub
	End If
	If cColpiMax <= 0 Or cColpiMax > 47 Then
		MsgBox "Colpi massimi non validi"
		Exit Sub
	End If
	If nQCombDaAspettare >= nCombMaxPossibili Then
		MsgBox "Quantità di combinazioni da aspettare errata"
		Exit Sub
	End If
	If nQRuoteDaUsare <= 0 Or nQRuoteDaUsare > 11 Then
		MsgBox "Quantità di ruote errata"
		Exit Sub
	End If
	If ScegliRuote(aRuote) = nQRuoteDaUsare Then
		ReDim Preserve aRuote(nQRuoteDaUsare)
		Do
			If VerificaCadenzeDiverse(idEstr,aRuote) And VerificaFigureDiverse(idEstr,aRuote) Then
				Set GruppoCombInGioco = New clsGruppoCombInGioco
				GruppoCombInGioco.EstrazioneInizio = idEstr
				For k = 1 To UBound(aRuote)
					For e = 1 To 5
						nLottrone = Estratto(idEstr,aRuote(k),e)
						Set Tripla = New clsTripla
						ReDim aN(0)
						Call GetTriplaCadenzaByNum(nLottrone,aN)
						Call Tripla.SetNumeri(aN)
						Tripla.Ruota = aRuote(k)
						Tripla.NumeroBase = nLottrone
						Call Tripla.IndividuaCoppiaDaGiocare(idEstr)
						Call GruppoCombInGioco.AddTripla(Tripla)
						Set Tripla = New clsTripla
						ReDim aN(0)
						Call GetTriplaFiguraByNum(nLottrone,aN)
						Call Tripla.SetNumeri(aN)
						Tripla.Ruota = aRuote(k)
						Tripla.NumeroBase = nLottrone
						Call Tripla.IndividuaCoppiaDaGiocare(idEstr)
						Call GruppoCombInGioco.AddTripla(Tripla)
					Next
				Next
				Do
					
					idEstr = idEstr + 1
					For Each Tripla In GruppoCombInGioco.Combinazioni
						If Tripla.Scartata = False Then
							Call Tripla.Verifica(idEstr)
							If Tripla.idEstrEsito <> 0 Then
								Tripla.Scartata = True
							End If
						End If
					Next
					
					If idEstr >= Fine Then Exit Do 

				Loop While ContaCombSortite(GruppoCombInGioco) < nQCombDaAspettare
				nGiocateTotali = nGiocateTotali + ContaCombNonSortite(GruppoCombInGioco)
				GruppoCombInGioco.EstrazioneInizioGioco = idEstr + 1
				nColpi = 0
				Do
					idEstr = idEstr + 1
					For Each Tripla In GruppoCombInGioco.Combinazioni
						If Tripla.idEstrEsito = 0 Then
							Call Tripla.Verifica(idEstr)
							If Tripla.idEstresito <> 0 Then
								nEsitiPositivi = nEsitiPositivi + 1
							End If
						End If
					Next
					nColpi = nColpi + 1
					If nColpi = cColpiMax Then
						

						Exit Do
					End If
					If idEstr >= Fine Then Exit Do 

				Loop While ContaCombSortite(GruppoCombInGioco) < nCombMaxPossibili
				If GruppoCombInGioco.EstrazioneInizioGioco > 0  Then  Call ScriviProspetto(GruppoCombInGioco)
				If nTipoAnalisi = 1 Then
					If GruppoCombInGioco.EstrazioneInizioGioco > 0  Then  
						If idEstr <= Fine Then Call GiocaCombinazioni(GruppoCombInGioco,cColpiMax,aRuote,MatriceImporti)
					End If 
				End If
			Else
				idEstr = idEstr + 1
			End If
			Call Messaggio("Estrazione " & idEstr)
			Call AvanzamentoElab(Inizio,Fine,idEstr)
			If ScriptInterrotto Then Exit Do
			 
			 
		Loop While idEstr < Fine
		Call Scrivi
		Call Scrivi(String(100,"*"))
		Call Scrivi("Giocate totali                           : " & nGiocateTotali)
		Call Scrivi("Giocate con esito entro i colpi previsti : " & nEsitiPositivi & " (" & ProporzioneX(nEsitiPositivi,nGiocateTotali,100) & "%)")
		Call Scrivi
		Call Scrivi(String(100,"*"))
		If nTipoAnalisi = 1 Then Call ScriviResoconto
	Else
		MsgBox "Il metodo prevede di selezionare " & nQRuoteDaUsare & "ruote"
	End If
End Sub
Function ScegliTipoAnalisi
	ReDim aV(2)
	aV(0) = "Ricerca combinazioni"
	aV(1) = "Ricerca combinazioni + Simulazione giocate"
	ScegliTipoAnalisi = ScegliOpzioneMenu(aV,0)
End Function
Sub GetTriplaCadenzaByNum(n,aRetNum)
	Dim k
	ReDim aRetNum(3)
	If n >= 1 And n <= 30 Then
		aRetNum(1) = n
		aRetNum(2) = n + 30
		aRetNum(3) = n + 60
	ElseIf n >= 31 And n <= 60 Then
		aRetNum(1) = n - 30
		aRetNum(2) = n
		aRetNum(3) = n + 30
	ElseIf n >= 61 And n <= 90 Then
		aRetNum(1) = n - 60
		aRetNum(2) = n - 30
		aRetNum(3) = n
	End If
End Sub
Sub GetTriplaFiguraByNum(n,aRetNum)
	Dim k
	ReDim aRetNum(3)
	If n >= 1 And n <= 24 Then
		aRetNum(1) = n
		aRetNum(2) = n + 33
		aRetNum(3) = n + 66
	ElseIf n >= 25 And n <= 27 Then
		aRetNum(1) = n
		aRetNum(2) = n + 3
		aRetNum(3) = n + 6
	ElseIf n >= 28 And n <= 30 Then
		aRetNum(1) = n - 3
		aRetNum(2) = n
		aRetNum(3) = n + 3
	ElseIf n >= 31 And n <= 33 Then
		aRetNum(1) = n - 6
		aRetNum(2) = n - 3
		aRetNum(3) = n
	ElseIf n >= 34 And n <= 57 Then
		aRetNum(1) = n - 33
		aRetNum(2) = n
		aRetNum(3) = n + 33
	ElseIf n >= 58 And n <= 60 Then
		aRetNum(1) = n
		aRetNum(2) = n + 3
		aRetNum(3) = n + 6
	ElseIf n >= 61 And n <= 63 Then
		aRetNum(1) = n - 3
		aRetNum(2) = n
		aRetNum(3) = n + 3
	ElseIf n >= 64 And n <= 66 Then
		aRetNum(1) = n - 6
		aRetNum(2) = n - 3
		aRetNum(3) = n
	ElseIf n >= 67 And n <= 90 Then
		aRetNum(1) = n - 66
		aRetNum(2) = n - 33
		aRetNum(3) = n
	End If
End Sub
Function VerificaCadenzeDiverse(idEstr,aRuote)
	Dim e,k,n,bRet,nLottrone
	bRet = True
	For k = 1 To UBound(aRuote)
		ReDim ab(30)
		For e = 1 To 5
			nLottrone = Estratto(idEstr,aRuote(k),e)
			ReDim aNum(0)
			Call GetTriplaCadenzaByNum(nLottrone,aNum)
			ab(aNum(1)) = True
		Next
		If ContaNumeriInArrayB(ab) <> 5 Then
			bRet = False
			Exit For
		End If
	Next
	VerificaCadenzeDiverse = bRet
End Function
Function VerificaFigureDiverse(idEstr,aRuote)
	Dim e,k,n,bRet,nLottrone
	bRet = True
	For k = 1 To UBound(aRuote)
		ReDim ab(90)
		For e = 1 To 5
			nLottrone = Estratto(idEstr,aRuote(k),e)
			ReDim aNum(0)
			Call GetTriplaFiguraByNum(nLottrone,aNum)
			ab(aNum(1)) = True
		Next
		If ContaNumeriInArrayB(ab) <> 5 Then
			bRet = False
			Exit For
		End If
	Next
	VerificaFigureDiverse = bRet
End Function

Function ContaNumeriInArrayB(aB)
	Dim k,n
	n = 0
	For k = LBound(aB) To UBound(aB)
		If aB(k) Then n = n + 1
	Next
	ContaNumeriInArrayB = n
End Function
Function ContaCombSortite(GruppoCombInGioco)
	Dim tripla,n
	n = 0
	For Each tripla In GruppoCombInGioco.Combinazioni
		If Tripla.IdEstrEsito <> 0 Then
			n = n + 1
		End If
	Next
	ContaCombSortite = n
End Function
Function ContaCombNonSortite(GruppoCombInGioco)
	Dim tripla,n
	n = 0
	For Each tripla In GruppoCombInGioco.Combinazioni
		If Tripla.IdEstrEsito = 0 Then
			n = n + 1
		End If
	Next
	ContaCombNonSortite = n
End Function
Sub ScriviProspetto(GruppoCombInGioco)
	Dim Tripla
	ReDim aV(12)
	aV(1) = "Anno"
	aV(2) = "N°Estr"
	aV(3) = "Ruota"
	aV(4) = "Numero Base"
	aV(5) = "Uscite Prec"
	aV(6) = "Coppia in gioco"
	aV(7) = "Sortiti"
	aV(8) = "N°Estr"
	aV(9) = "Colpi"
	aV(10) = "Inizio gioco"
	aV(11) = "N°Estr"
	aV(12) = "Colpi"
	Call InitTabella(aV)
	For Each Tripla In GruppoCombInGioco.Combinazioni
		ReDim aV(12)
		aV(1) = Anno(GruppoCombInGioco.EstrazioneInizio)
		aV(2) = IndiceAnnuale(GruppoCombInGioco.EstrazioneInizio)
		aV(3) = SiglaRuota(Tripla.Ruota)
		aV(4) = Tripla.NumeroBase
		aV(5) = Tripla.PrimoNumeroTrovatoIndietro
		aV(6) = Tripla.NumeriInGioco
		aV(7) = Tripla.NumUsciti
		If Tripla.Scartata Then
			aV(8) = IndiceAnnuale(Tripla.IdEstrEsito)
			aV(9) =(Tripla.IdEstrEsito) - GruppoCombInGioco.EstrazioneInizio
		Else
			aV(10) = IndiceAnnuale(GruppoCombInGioco.EstrazioneInizioGioco)
			If Tripla.IdEstrEsito > 0 Then
				aV(11) = IndiceAnnuale(Tripla.IdEstrEsito)
				aV(12) =(Tripla.IdEstrEsito + 1) - GruppoCombInGioco.EstrazioneInizioGioco
			Else
				aV(11) = "-"
				aV(12) = "-"
			End If
		End If
		Call AddRigaTabella(aV)
	Next
	Call CreaTabella
End Sub
Sub GiocaCombinazioni(GruppoCombInGioco,cColpiMax,aRuote,MatriceImporti)
	Dim Tripla,k
	ReDim aNumInGioco(1)
	ReDim aRuota(1)
	ReDim aPoste(1)
	Dim idGiocata
	ReDim aGiocateDaInterr(1)
	For Each Tripla In GruppoCombInGioco.Combinazioni
		If Tripla.Scartata = False Then
			aRuota(1) = Tripla.Ruota
			ReDim aNumInGiocoTmp(0)
			Call Tripla.GetNumeriInGioco(aNumInGiocoTmp)
			For k = 1 To UBound(aNumInGiocoTmp)
				aNumInGioco(1) = aNumInGiocoTmp(k)
				idGiocata = idGiocata + 1
				If k = 1 Then
					aGiocateDaInterr(1) = idGiocata + 1
				ElseIf k = 2 Then
					aGiocateDaInterr(1) = idGiocata - 1
				End If
				Call ImpostaGiocata(idGiocata,aNumInGioco,aRuota,aPoste,cColpiMax,1,,aGiocateDaInterr)
				Call ImpostaProgressione(idGiocata,MatriceImporti)
			Next
			'Call Gioca(GruppoCombInGioco.EstrazioneInizioGioco)
		End If
	Next
	Call Gioca(GruppoCombInGioco.EstrazioneInizioGioco)
End Sub
Sub LeggiMatriceProgressione(aProgressioni)
	ReDim aProgressioni(10,255) ' preparo la matrice per leggere gli Importi di gioco
	aProgressioni(1,1) = 1.00
	aProgressioni(1,2) = 1.00
	aProgressioni(1,3) = 1.00
	aProgressioni(1,4) = 1.00
	aProgressioni(1,5) = 1.50
	aProgressioni(1,6) = 1.50
	aProgressioni(1,7) = 2.00
	aProgressioni(1,8) = 2.50
	aProgressioni(1,9) = 3.00
	aProgressioni(1,10) = 4.00
	aProgressioni(1,11) = 5.00
	aProgressioni(1,12) = 6.50
	aProgressioni(1,13) = 8.00
	aProgressioni(1,14) = 10.00
	aProgressioni(1,15) = 12.50
	aProgressioni(1,16) = 16.00
	aProgressioni(1,17) = 20.00
	aProgressioni(1,18) = 25.00
	aProgressioni(1,19) = 31.50
	aProgressioni(1,20) = 39.50
	aProgressioni(1,21) = 50.00
	aProgressioni(1,22) = 62.50
	aProgressioni(1,23) = 78.50
	aProgressioni(1,24) = 99.00
	aProgressioni(1,25) = 124.50
	aProgressioni(1,26) = 156.50
	aProgressioni(1,27) = 196.50
	aProgressioni(1,28) = 247.00
	aProgressioni(1,29) = 310.50
	aProgressioni(1,30) = 390.50
	aProgressioni(1,31) = 491.00
	aProgressioni(1,32) = 617.50
	aProgressioni(1,33) = 776.00
	aProgressioni(1,34) = 975.50
	aProgressioni(1,35) = 1226.50
	aProgressioni(1,36) = 1542.00
	aProgressioni(1,37) = 1938.50
	aProgressioni(1,38) = 2437.00
	aProgressioni(1,39) = 3064.00
	aProgressioni(1,40) = 3852.00
	aProgressioni(1,41) = 4843.00
	aProgressioni(1,42) = 6088.50
	aProgressioni(1,43) = 7654.50
	aProgressioni(1,44) = 9623.00
	aProgressioni(1,45) = 12098.00
	aProgressioni(1,46) = 15210.00
	aProgressioni(1,47) = 19122.00
End Sub
 
Ultima modifica di un moderatore:
Professore, c'è un errore riga 215 : Call Tripla.IndividuaCoppiaDaGiocare(idEstr) errore 500, variabile non definita.....

Grazie luigi

io opero ancora con la versione 1.1.79

Ciao
 
Ciao a tutti

Entro sul forum dopo molto tempo.
Una parte consistente dei miei studi sul lotto era dedicata proprio agli scritti di Ron colman, pseudonimo di uno esperto di giochi italiano di cui
ora mi sfugge il nome e cognome.
I libri di R. Colman sono stati e sono sempre molto interessanti.
Posso assicurare che l'impianto concettuale e teorico del libro in questione ( vi sono varie edizioni) è valido, la parte che riguarda il Davenal
invece non ha nessuna consistenza statistica, ho usato i numeri naturali in vari modi ottenendo sempre i medesimi risultati.
Ron Colman porta in prima istanza a considerare il gioco del lotto come un vero e proprio lavoro con tutti gli annessi e connessi di un lavoro,
parla di gioco continuo e di guadagno continuo.
Peccato che tutta la costruzione, molto articolata non riesca in alcun modo a superare la tassa non equa che grava sul lotto italico.
I recuperi funzionano fino ad un certo punto.


Per sergio 1954

In passato si era parlato di Colman nella sezione " STATISTICA".
Non so se L'utente Amena scrive ancora sul forum, se cosi fosse ti consiglio di contattarla perche lei (è una donna) conosce molto bene
le idee e i concetti di R. Colman.
Era sua intenzione scrivere un libro sull'impianto di gioco con relativo programma per computer, migliorando idee e prassi di gioco.
 
Grazie corale della dritta.

Sono più di 30 anni che sono in possesso di questo libro e mi sono deciso solo ora a divulgare alcune pagine per suscitare interesse e curiosita.
Mi sembra che lo scopo sia stato raggiunto visto il numero di visite al sito.
Più volte ho fatto presente che per me la bontà di questo metodo non sta tanto nel metodo di ricerche dei numeri da mettere in gioco ,ce ne sono mille e mille forse anche migliori, ma nell'idea del recupero che sicuramente va migliorata.
L'ottimo LuigiB mi ha sostenuto fino ad ora ma giustamento non posso pretendere di piu.
Vedrò di rintracciare il post che mi hai indicato.
Grazie

Sergio
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto