fillotto
Advanced Member >PLATINUM<
Per imparare il più possibie, gli esempi che prendo in considerazione sono maggiormente i tuoi script e il mio sistema è quello di commentare il più possibile con parole mie per tenere a mente i concetti.
In uno dei tuoi ultimi script non riesco a capire la questione meglio spiegata nei commenti nel codice della funzione "DISAMBO" , potresti commentare il tuo ragionamento?
In uno dei tuoi ultimi script non riesco a capire la questione meglio spiegata nei commenti nel codice della funzione "DISAMBO" , potresti commentare il tuo ragionamento?
Codice:
Sub Main()
Dim idEstr
Dim Inizio
Dim Fine
Dim t,r1,r2,n1,n2,n3,n4
Dim am(1)'ambata
Dim amb(2)'ambo
Dim ruote(11)'tutte
Dim posta(10)'seve per la posta dell'ammbata
Dim poste(10)'seve per la posta dell'ammbo
Dim nAnalisi
Dim nColpiDiGioco
posta(1) = 1 'un euro x l'ambata
poste(2) = 1 'un euro x l'ambo
nAnalisi = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"100"))
nColpiDiGioco = CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"8"))
Inizio = EstrazioneFin - nAnalisi
Fine = EstrazioneFin
co = 0
For idEstr = Inizio To Fine
Messaggio "elab. estr. [" &(idEstr) & "] di " & DataEstrazione(idEstr,1)
Call AvanzamentoElab(Inizio,Fine,idEstr)
t = 1
Do While DISAMBO(idEstr,t,r1,n1,n2,r2,n3,n4) = True 'fino a quando la funzione DISAMBO è vera......
ruote(1) = r1
ruote(2) = r2
co = co + 1
Scrivi String(100,"°") & " Caso n°" & co,1
'°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Caso n°8
Scrivi 'qui lascia uno spazio cioè non scrive niente
Scrivi NomeRuota(r1) & " " & CInt(n1) & " " & CInt(n2) & " " & NomeRuota(r2) & " " & CInt(n3) & " " & CInt(n4)
'Firenze 44 89 Nazionale 40 85
z1 = Fuori90(n1 + n3) '(nell'esempio)z1 è = a 44+40 ossia 84
z2 = Fuori90(n2 + n4) '(nell'esempio)z2 è = a 89+85 ossia 84
'QUESTA E' LA PRIMA CONDIZIONE X INDIVIDUARE UN AMBO A DISTANZA 45
If z1 = z2 Then'a questo punto se z1 è = a z2 e abbiamo visto che entrambi sono = a 84.... allora
am(1) = z1 'am(1) cioè LA VARIABILE che abbiamo dimensionato come ambata è = a 84 (nell'esempio) ma sarebbe meglio Dire
'ogni qualvolta che z1 è = a z2
End If '....e chiudo l'if
'OPERAZIONI PER DETERMINARE I NUMERI DELL'AMBO.............
z3 = Fuori90(n1 + n2)'(nell'esempio)z3 è = a 44+89 ossia 43
z4 = Fuori90(n3 + n4)'(nell'esempio)z4 è = a 40+85 ossia 35
If z3 = z4 Then 'SOLO NEL CASO CHE z3 = z4 allora i due num dell'ambo saranno formati(ma nel caso dell'esempio no!! z3 e z 4
non sono uguali)
amb(1) = am(1)' da 84
amb(2) = z3 ' e da 43
End If ' chiudo quest'if e per formare l'ambo prendo in esame l'eventualità che z3 <> z4 come in effetti è
If z3 <> z4 Then 'perciò quando z3 è diverso da z4 (ed è questo il caso )
z5 = Fuori90(n1 + n4)'faccio la somma del n1+n4 (nell'esempio)= a 39 e mi ricavo z5
z6 = Fuori90(n2 + n3)'e la somma del n2+n3 (nell'esempio)= a 39 e mi ricavo z6
If z5 = z6 Then'SOLO NEL CASO CHE z5 = z6 allora i due num dell'ambo saranno formati( nel caso dell'esempio SI !! z5 e z 6
sono uguali)
amb(1) = am(1) 'il primo num sarà sempre 84 cioè am(1)
amb(2) = z5 'e il secondo num da 39 il num comune
End If
End If
ImpostaGiocata 1,am,ruote,posta,nColpiDiGioco
ImpostaGiocata 2,amb,ruote,poste,nColpiDiGioco
For a = 1 To 10
For b = 1 To 10
ImpostaInterruzioni a,b,2
Next
Next
Gioca idEstr,1
t = t + 1
Loop
If ScriptInterrotto Then Exit For
Next
Scrivi
Scrivi String(100,"*")
ColoreTesto 2
Scrivi" casi trovati : " & co,1
ColoreTesto 0
Scrivi String(100," * ")
TestoInBandaPassante(" LISTATO BY B A F F O B L U "),1,3,0
ScriviResoconto
End Sub
'QUI COMINCIA LA FUNCTION DELL'UTENTE X TROVARE LA DIStanzaAMBO CHE X FUNZONARE HA BISOGNO DI 8 ARGOMENTI
Function DISAMBO(estrazione,tentativo,byref ruota1,byref numero1,byref numero2,byref ruota2,byref numero3,byref numero4)
[COLOR=#FF0000]'QUI NON HO CAPITO PERCHè GLI ARGOMENTI "estrazione" e " tentativo" (E IN GENERE TUTTI
'QUELLI CHE NON HANNO SPAZI ) VENGONO SCRITTI IN CICLAMINO MENTRE SE SCRIVO "pippo baudo" con lo spazio lo scrive in
'neretto è come se non li prendesse in considerazione per il dimensionamento ma lascia degli spazi??? a che serve questo
' in pratica qualche parola in più ...... [/COLOR]
Dim trovati,r,rr,i,ii,j,jj
trovati = 0
For r = 1 To 10
For i = 1 To 4
For j = i + 1 To 5
a = Estratto(estrazione,r,i)
b = Estratto(estrazione,r,j)
c = Distanza(a,b)
If c = 45 Then
For rr = r + 1 To 11
If rr = 11 Then
rr = 12
End If
For ii = 1 To 4
For jj = ii + 1 To 5
aa = Estratto(estrazione,rr,ii)
bb = Estratto(estrazione,rr,jj)
cc = Distanza(aa,bb)
If c = cc Then
trovati = trovati + 1
If trovati = tentativo Then
numero1 = Estratto(estrazione,r,i)
numero2 = Estratto(estrazione,r,j)
numero3 = Estratto(estrazione,rr,ii)
numero4 = Estratto(estrazione,rr,jj)
ruota1 = r
ruota2 = rr
DISAMBO = True
Exit Function
End If
End If
Next
Next
Next
End If
Next
Next
Next
DISAMBO = False
End Function