Novità

Luigi vedi un po tu!!

Stato
Chiusa ad ulteriori risposte.
R

Roby

Guest
Ho fatto questo script per vedere se quando trovavo un estratto ripetuto nell'estrazione succesiva nella stessa ruota nella stessa posizione ,i due successivi estratti isotopi nelle due successive estrazioni,che esito avrebbero dato giocati per 6 colpi.
il listato funziona è commentato ma non riesco a spiegarmi perchè se l'evento capita in 2^ posiz mi da errore per cui il ciclo l'ho messo a partire dalle 3^pos ecco il listato:
Sub Main
Dim rt(1),pta(1),nr(4),dg(2),pos 'la ruota è una,pta significa faccio la puntata "estratto"(1)
'nr significa che i numeri sono(4) dg è la variabile dei num da giocare(2)pos e la variabile con il ciclo FOR
ex = InputBox("Quante estrazioni controllo?",,1000)

ini = EstrazioneFin - ex
fin = EstrazioneFin
For es = ini To fin
For pos = 3 To 5 'pos nelle intenzioni doveva andare da 1 a 5 ma ho
' costatato che mi da errore se incontra la
'2^ pos ???? PERCHE'???????? ho tolto il ciclo FOR
' e controllato tutte le posizioni singolarmente e la 2^ mi
'da errore , tutte le altre vanno bene
Messaggio es

rt(1) = 1 ' la ruota interessata Bari
pta(1) = 1 'la puntata(che è una) di 1 euro
k = 6 'per 6 colpi

nr(1) = Estratto(es,1,pos) '3°,4 e 5 di BA
nr(2) = Estratto(es + 1,1,pos) '3°,4 e 5 di BA
nr(3) = Estratto(es + 2,1,pos) '3°,4 e 5 di BA
nr(4) = Estratto(es + 3,1,pos) '3°,4 e 5 di BA

dg(1) = nr(3)
dg(2) = nr(4)
If nr(2) = nr(1) Then 'se il num 1 è = num 2 allora
ImpostaGiocata 1,dg,rt,pta,k,1
casi = casi + 1
'comincia a scrivere a distanza di 70 spazi " Caso n° "
Scrivi String(70," = ") & " Caso n° " & casi,1

Gioca es + 3

End If
Next
Next
Scrivi "Casi totali(" & casi & ")",1
ScriviResoconto

End Sub
 
L

LuigiB

Guest
ciao Filotto , ecco lo script rivisto e corretto

Codice:
Sub Main
	Dim rt(1),pta(1),nr(4),dg(2),pos 'la ruota è una,pta significa faccio la puntata "estratto"(1)
	'nr significa che i numeri sono(4) dg è la variabile dei num da giocare(2)pos e la variabile con il ciclo FOR
	Dim nGiocata ' numero giocata 
	Dim Casi 
	
	' questi valori possono stare in testa tanto non cambiano e quindi è inutile metterlli dentro al ciclo
	rt(1) = 1 ' la ruota interessata Bari
	pta(1) = 1 'la puntata(che è una) di 1 euro
	k = 6 'per 6 colpi
	
	ex = InputBox("Quante estrazioni controllo?",,1000)
	
	ini = EstrazioneFin - ex
	fin = EstrazioneFin
	For es = ini To fin -3 ' qui deve essere - 3 perche devi poter avere almeno altre 4 estrazioni successive
		For pos = 1 To 5 'pos nelle intenzioni doveva andare da 1 a 5 ma ho
		
			If  Estratto(es, 1, pos) =  Estratto(es+1, 1, pos)	Then ' se l'estratto in posizione pos è uguale all'estrato di estrazone +1  allora gioco
				
				Casi  =Casi  +1 
				Call Scrivi ("Caso " & Casi & " Numeri in posizione " & pos & " sulla ruota di " & NomeRuota(rt(1))) 
				Call Scrivi ("Numero ripetuto isotopo  " &  Estratto(es, 1, pos)) 
				 
				
				dg(1) = Estratto(es+2, 1, pos) ' terza estrazione 
				dg(2) = Estratto(es+3, 1, pos) ' quarta estrazione 
				
				nGiocata = nGiocata +1 ' incremento il numero di giocate 
				ImpostaGiocata nGiocata ,dg,rt,pta,k,1
				
				Gioca es + 3
			End If
	
		Next
	Next
	Scrivi "Casi totali(" & Casi & ")",1
	ScriviResoconto
	
End Sub
 

fillotto

Advanced Member >PLATINUM<
Grazie Luigi ,ho visto adesso è cominio a capire i meccanismi
volendo cambiare ruota ho messo alla "rt" il valore 2 ovvero cagliari .ANCORA GRAZIE LA CONOSCENZA E' IL REGALO PIU' GRANDE CHE TU POSSA FARCI FILLOTTO
quote:Originally posted by LuigiB

ciao Filotto , ecco lo script rivisto e corretto

Codice:
Sub Main
	Dim rt(1),pta(1),nr(4),dg(2),pos 'la ruota è una,pta significa faccio la puntata "estratto"(1)
	'nr significa che i numeri sono(4) dg è la variabile dei num da giocare(2)pos e la variabile con il ciclo FOR
	Dim nGiocata ' numero giocata 
	Dim Casi 
	
	' questi valori possono stare in testa tanto non cambiano e quindi è inutile metterlli dentro al ciclo
	rt(1) = [b]1[/b] ' la ruota interessata Bari 
	pta(1) = 1 'la puntata(che è una) di 1 euro
	k = 6 'per 6 colpi
	
	ex = InputBox("Quante estrazioni controllo?",,1000)
	
	ini = EstrazioneFin - ex
	fin = EstrazioneFin
	For es = ini To fin -3 ' qui deve essere - 3 perche devi poter avere almeno altre 4 estrazioni successive
		For pos = 1 To 5 'pos nelle intenzioni doveva andare da 1 a 5 ma ho
		
			If  Estratto(es, [b]1[/b], pos) =  Estratto(es+1, [b]1[/b], pos)	Then ' se l'estratto in posizione pos è uguale all'estrato di estrazone +1  allora gioco
				
				Casi  =Casi  +1 
				Call Scrivi ("Caso " & Casi & " Numeri in posizione " & pos & " sulla ruota di " & NomeRuota(rt(1))) 
				Call Scrivi ("Numero ripetuto isotopo  " &  Estratto(es, [b]1[/b], pos)) 
				 
				
				dg(1) = Estratto(es+2, [b]1[/b], pos) ' terza estrazione 
				dg(2) = Estratto(es+3, [b]1[/b], pos) ' quarta estrazione 
				
				nGiocata = nGiocata +1 ' incremento il numero di giocate 
				ImpostaGiocata nGiocata ,dg,rt,pta,k,1
				
				Gioca es + 3
			End If
	
		Next
	Next
	Scrivi "Casi totali(" & Casi & ")",1
	ScriviResoconto
	
End Sub
 

fillotto

Advanced Member >PLATINUM<
Ciao LUIGI ho fatto questo script che funziona , l'ho fatto su una sola ruota "BA" ma siccome i casi sono pochi volevo estenderlo con l'osservazione in tutte le ruote senza stare a cambiare la ruota di volta in volta,
ho pensato ad un ciclo for di rt ma non funge, puoi vedere? ti metto di seguito lo script che funziona e e il secondo che non funziona GRAZIE comunque a te e chi vorrà intervenire:

Sub Main
'Differenza tra 1° e 1° e 5° 5° di 4 estr uguale BA ....
Dim rt(1),pta(2),nr(8),dg(8) 'la ruota è una,pta significa faccio la puntata "ambo"(2)
'nr significa che i numeri sono(16) dg è la variabile dei num da giocare(8)
Dim nGiocata ' numero giocata
Dim Casi
' questi valori possono stare in testa tanto non cambiano e quindi è inutile metterlli dentro al ciclo
rt(1) = 1 ' la ruota interessata Bari
pta(2) = 1 'la puntata(che è un ambo) di 1 euro
k = 7 'per 7 colpi

ex = InputBox("Quante estrazioni controllo?",,1000)

ini = EstrazioneFin - ex
fin = EstrazioneFin
For es = ini To fin - 3 ' qui deve essere - 3 perche devi poter avere almeno altre 4 estrazioni successive
nr(1) = Estratto(es,1,1)
nr(2) = Estratto(es + 1,1,1)
nr(3) = Estratto(es + 2,1,5)
nr(4) = Estratto(es + 3,1,5)
nr(5) = Estratto(es,1,5)
nr(6) = Estratto(es + 1,1,5)
nr(7) = Estratto(es + 2,1,1)
nr(8) = Estratto(es + 3,1,1)

If Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)) = Differenza(Estratto(es + 2,1,5),Estratto(es + 3,1,5)) Then

Casi = Casi + 1
Call Scrivi("Caso " & Casi & " NumPiù_o_Meno = " & Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)) & " ruota di " & NomeRuota(rt(1)))



dg(1) = Fuori90(Estratto(es,1,5) + Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(2) = Fuori90(90 + Estratto(es,1,5) - Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(3) = Fuori90(Estratto(es + 1,1,5) + Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(4) = Fuori90(90 + Estratto(es + 1,1,5) - Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(5) = Fuori90(Estratto(es + 2,1,1) + Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(6) = Fuori90(90 + Estratto(es + 2,1,1) - Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(7) = Fuori90(Estratto(es + 3,1,1) + Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))
dg(8) = Fuori90(90 + Estratto(es + 3,1,1) - Differenza(Estratto(es,1,1),Estratto(es + 1,1,1)))




nGiocata = nGiocata + 1 ' incremento il numero di giocate
ImpostaGiocata nGiocata,dg,rt,pta,k,2

Gioca es + 3
End If


Next
Scrivi "Casi totali(" & Casi & ")",1
ScriviResoconto

End Sub

Di SEGUITO LO SCRIPT CHE NON FUNZIONA
Sub Main
'Differenza tra 1° e 1° e 5° 5° di 4 estr uguale BA .... E nelle intenzionni fino a VE non funziona!
Dim rt,pta(2),nr(8),dg(8) 'la ruota è una,pta significa faccio la puntata "ambo"(2)
'nr significa che i numeri sono(16) dg è la variabile dei num da giocare(8)
Dim nGiocata ' numero giocata
Dim Casi
' questi valori possono stare in testa tanto non cambiano e quindi è inutile metterlli dentro al ciclo

pta(2) = 1 'la puntata(che è un ambo) di 1 euro
k = 7 'per 7 colpi

ex = InputBox("Quante estrazioni controllo?",,1000)

ini = EstrazioneFin - ex
fin = EstrazioneFin
For es = ini To fin - 3 ' qui deve essere - 3 perche devi poter avere almeno altre 4 estrazioni successive
For rt = 1 To 10
nr(1) = Estratto(es,rt,1)
nr(2) = Estratto(es + 1,rt,1)
nr(3) = Estratto(es + 2,rt,5)
nr(4) = Estratto(es + 3,rt,5)
nr(5) = Estratto(es,rt,5)
nr(6) = Estratto(es + 1,rt,5)
nr(7) = Estratto(es + 2,rt,1)
nr(8) = Estratto(es + 3,rt,1)

If Differenza(Estratto(es,rt,1),Estratto(es + 1,rt,1)) = Differenza(Estratto(es + 2,rt,5),Estratto(es + 3,rt,5)) Then

Casi = Casi + 1
Call Scrivi("Caso " & Casi & " NumPiù_o_Meno = " & Differenza(Estratto(es,rt,1),Estratto(es + 1,rt,1)) & " ruota di " & NomeRuota(rt))



dg(1) = Fuori90(Estratto(es,rt,5
 
L

LuigiB

Guest
Cio Filotto , il primo script manco l'ho visto , nel secondo invece c'è un errore , quando si usa la funzione ImpostaGiocata il parametro che si riferiscee alla ruota non è una semplice variabile ma un array o vettore come lo vuoi chiamare.
Quindi siccome con piacere vedo che ti stai adoperando per far
fruttare quanto hai appreso dai miei video e dagli script che hai visto in giro degli altri scripter non voglio scriverti qui il listato funzionante ma solo suggerirti quali sono le correzioni in modo che ti rimangano impresse.


1) La funzione impostagiocata al parametro ruota ha bisogno di un array
percio bisogna dichiarare qualcosa del tipo

Codice:
    Dim aRuoteInGioco (1)

dichiariamo l'array con indice superiore uguale ad 1 in quanto lo script prevede di giocare una ruota alla volta.


2) ovviamente questo array va valorizzato durante il ciclo rt , per valorizzare un array si fa come con le variabili normali solo che
bisogna passare l'indice dell'elemento che si vuole modificare
avremo quindi



Codice:
  aRuoteInGioco (1)  = VALORE (indovina quale variabile andra usata al posto di VALORE)



3) Ho notato che dichiari un array nr da 1 a 8 , valorizzi i numeri ma poi invece di usare i valori contenuti nell'array rilanci la funzione Estratto , devo dirti che anche se funziona non ha senso ...
ormai i tuoi valori ce l'hai nell'array usa quello perche internamente è piu veloce usare dei dati gia memorizzati (quelli nell'array) piuttosto che richiamare daccapo la funzione estratto.

4) Nella funzione impostaGiocata invece di usare la variabile RT devi usare l'array che ti sei creato e che contiene le ruote in gioco



Codice:
   ImpostaGiocata nGiocata,dg,aRuoteInGioco ,pta,k,2



Ciao !
 

fillotto

Advanced Member >PLATINUM<
Grazie Luigi per i suggerimenti che ho applicato spero bene (specie il punto 3 che snellisce il tutto e diventa effettivaente + veloce)ma credo che non hai notato che ci deve essere un secondo errore e cioè quando dico "Gioca es + 3" perchè mi da errore proprio li, infatti se lo cancello intendo "Gioca es + 3" ancorchè mi da il resoconto con tutti "0" mi scrive i casi che sono capitati (giusti)comunque ecco il listato :
Sub Main
'Differenza tra 1° e 1° e 5° 5° di 4 estr uguale BA .... E nelle intenzionni fino a VE non funziona!
Dim rt,pta(2),nr(8),dg(8) 'la ruota è una,pta significa faccio la puntata "ambo"(2)
'nr significa che i numeri sono(16) dg è la variabile dei num da giocare(8)
Dim nGiocata ' numero giocata
Dim Casi
Dim aRuoteInGioco(1)

' questi valori possono stare in testa tanto non cambiano e quindi è inutile metterlli dentro al ciclo

pta(2) = 1 'la puntata(che è un ambo) di 1 euro
k = 7 'per 7 colpi

ex = InputBox("Quante estrazioni controllo?",,100)
aRuoteInGioco(1) = rt
ini = EstrazioneFin - ex
fin = EstrazioneFin
For es = ini To fin - 3 ' qui deve essere - 3 perche devi poter avere almeno altre 4 estrazioni successive
For rt = 1 To 10
nr(1) = Estratto(es,rt,1)
nr(2) = Estratto(es + 1,rt,1)
nr(3) = Estratto(es + 2,rt,5)
nr(4) = Estratto(es + 3,rt,5)
nr(5) = Estratto(es,rt,5)
nr(6) = Estratto(es + 1,rt,5)
nr(7) = Estratto(es + 2,rt,1)
nr(8) = Estratto(es + 3,rt,1)

If Differenza(Estratto(es,rt,1),Estratto(es + 1,rt,1)) = Differenza(Estratto(es + 2,rt,5),Estratto(es + 3,rt,5)) Then

Casi = Casi + 1
Call Scrivi("Caso " & Casi & " NumPiù_o_Meno = " & Differenza(Estratto(es,rt,1),Estratto(es + 1,rt,1)) & " ruota di " & NomeRuota(rt))
Call Scrivi(" estrazione generatrice: " & es)



dg(1) = Fuori90(nr(5) + Differenza(nr(1),nr(2)))
dg(2) = Fuori90(90 + nr(5) - Differenza(nr(1),nr(2)))
dg(3) = Fuori90(nr(6) + Differenza(nr(1),nr(2)))
dg(4) = Fuori90(90 + nr(6) - Differenza(nr(1),nr(2)))
dg(5) = Fuori90(nr(7) + Differenza(nr(1),nr(2)))
dg(6) = Fuori90(90 + nr(7) - Differenza(nr(1),nr(2)))
dg(7) = Fuori90(nr(8) + Differenza(nr(1),nr(2)))
dg(8) = Fuori90(90 + nr(8) - Differenza(nr(1),nr(2)))




nGiocata = nGiocata + 1 ' incremento il numero di giocate
ImpostaGiocata nGiocata,dg,aRuoteInGioco,pta,k,2
Gioca es + 3

End If ' If Differenza(Estratto(es,rt,1...
Next

Next
Scrivi "Casi totali(" & Casi & ")",1
ScriviResoconto

End Sub
 
L

LuigiB

Guest
no filotto , hai sbagliato nel valorizzare l'array delle ruote in gioco
lo devi valorizare dentro il ciclo rt ...
li dove lo hai valorizzato tu rt vale 0 !!!
 

fillotto

Advanced Member >PLATINUM<
quote:Originally posted by LuigiB

no filotto , hai sbagliato nel valorizzare l'array delle ruote in gioco
lo devi valorizare dentro il ciclo rt ...
li dove lo hai valorizzato tu rt vale 0 !!!
mi arrendo temo che devi essere più esplicito ho messo 0 in "For rt = 0 To 10 ma mi da sempre lo stesso errore non ho capito:(:(
 
L

LuigiB

Guest
scusa tu hai due cicli uno esterno e l'altro interno.
Il ciclo esterno è gestito da es ed è il ciclo sulle estrazioni
il ciclo interno è gestito da rt ed è il ciclo sulle ruote
ora tu hai un array aRuoteInGioco che di volta in volta nel suo elemento identificato dall'indice 1 deve contenere la ruota in gioco
quindi nel ciclo rt devi fare


for rt 1 to 10
aRuoteInGioco (1) = rt
next
 

fillotto

Advanced Member >PLATINUM<
quote:Originally posted by LuigiB

scusa tu hai due cicli uno esterno e l'altro interno.
Il ciclo esterno è gestito da es ed è il ciclo sulle estrazioni
il ciclo interno è gestito da rt ed è il ciclo sulle ruote
ora tu hai un array aRuoteInGioco che di volta in volta nel suo elemento identificato dall'indice 1 deve contenere la ruota in gioco
quindi nel ciclo rt devi fare


for rt 1 to 10
aRuoteInGioco (1) = rt
next
Miracolo:D:D l'avevo fatto soltanto sbagliavo la posizione(e ti pare poco!!) comunque , una cosa è certa : n m s scoda più!!!
GRAZIE mi so levato un peso, vado vede la tele
 

giovanna55

Super member
scusa filotto l'intromissione, ma ho un msg x luigiB


scusa ho un errore nell'istruzione OrdinaMatrice (num)

cosa può essere?


spaziometria 1.1.39



alla prossima
 
Stato
Chiusa ad ulteriori risposte.

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 18 maggio 2024
    Bari
    77
    62
    67
    60
    04
    Cagliari
    89
    01
    35
    54
    38
    Firenze
    84
    58
    25
    64
    57
    Genova
    53
    25
    66
    59
    23
    Milano
    22
    75
    48
    16
    77
    Napoli
    81
    41
    42
    67
    39
    Palermo
    19
    63
    57
    43
    05
    Roma
    04
    35
    50
    33
    23
    Torino
    56
    20
    46
    14
    88
    Venezia
    78
    81
    42
    74
    36
    Nazionale
    42
    83
    59
    86
    34
    Estrazione Simbolotto
    Milano
    41
    29
    01
    27
    30
Alto