L
LuigiB
Guest
Cioa Filotto e Lanfranco , metto ui llo script commentatisdsimo .. dai Filotto che se ho capito bene la modifica da fare
non richiede che la pressione di una decina scarsa di caratteri ...
non richiede che la pressione di una decina scarsa di caratteri ...
Codice:
Sub GetAdattatore1EAdattatore2(Inizio,Fine,aRuota,Colpi,Adattatore1,Adattatore2,np)
'=======================================
' Inizio,Fine,aRuota,Colpi,Adattatore1,Adattatore2,np
' Sono i parametri della sub , sono tutti passati ByRef (che è implicito)
' questo vuol dire che all'uscita della sub i parametri possono essere riletti dalla
' sub chiamante che vedrà i valori in base alle modifiche effettuate da questa sub
' in particolare ci interessano i parametri Adattatore1 e Adattatore2 , questi
' conterranno i numeri individuati dalla logica di questa sub
'====================================
Dim arrAmbi ' E' un array che conterrà i 4005 ambi possibili con 90 numeri
' per ora non è ancora dimensionato , si occuperàa di dimensiarlo
' la chiamata alla sub Sviluppoambi
Dim k,i,idEstr '>>>>>>>>>Si tratta di variabili di comodo o per iterare sui cicli
' vediamo i dettagli
' K : itera sull'array che contiene i 4005 ambi
' I : mi pare che non sia usato si potrebbe togliere
' IdEstr : itera sul range delle estrazioni da analizzare
Dim bFound ' Found in inglese vuol dire trovare , la b davanti indica un valore di tipo Booolean (cioè vero/falso)
' è come una bandierinaan che si alza e si abbassa indicando uno stato (bandiera su/giu), nel nostro caso
' prima di entrare nel ciclo gestito da idEstr (quello che itera sulle estrazioni da analizzare)
' prevalorizziamo la variabile a True (vero), poi durante il ciclo suddetto (quello di IdEstr) se la funzione
' VerificaEsito torna True allora andiamo a impostare bFound a False e usciamo dal ciclo con Exit For.
' Il nostro scopo infatti è trovare una combinazione che non abbia dato esito quindi come abbiamo ragionato ?
' Abbiamo detto , diamo per convenzione che tutte le combinazioni (quelle degli ambi) siano adatte nell senso
' che non abbiano dato esito e questo è quello che avviene con bFound = True , poi pero entriamo nel ciclo
' (For idEstr = Inizio To Fine Step 9) dentro questo ciclo se l'ambo in questione ha dato esito allora
' la nostra bella bandierian si abbassa (bFound = False) e usciao dal ciclo , infatti non ha senso continuarlo
' visto che la combinazione non soddisfa i requisiti.
' Quindi al termine del ciclo gestito da IdEstr se la nostra variabile bFound vale ancora True vuol dire
' che la combinazione col sommativo non ha ancora dato esito.
Dim E
Adattatore1 = 0 'preimposto a 0 i numeri che devo ancora scoprire
Adattatore2 = 0
Call Sviluppoambi(arrAmbi) ' sviluppa i 4005 ambi e alimenta l'array
For k = 1 To UBound(arrAmbi)'cicla sui 4005 ambi
bFound = True 'preimposto a True il flag (flag vuol dire bandiera)
For idEstr = Inizio To Fine Step 9 ' ciclo sulle estrazioni del range
ReDim aNumInGioco(2) 'predispongo un array di 2 elementi che dovra
' contenere il risultato del tale numero letto dall'estrazione
' sommando una volta il primo numero dell'ambo , e una seconda volta il secondo numero
E = np ' valorizza E con la posizione del numero da leggere (posizione estrazionale da 1 a 5) np viene passato alla sub
' si pottrebbe pure evitare <E> e usare direttamente <np>
' il primo dei numeri in gioco è dato dalla somma dell'estrato in posisizione E sommato al primo numero dell'ambo corrente
aNumInGioco(1) = Fuori90(Estratto(idEstr,aRuota(1),E) + arrAmbi(k,1))
' il secondo dei numeri in gioco è dato dalla somma dell'estrato in posisizione E sommato al secondo numero dell'ambo corrente
aNumInGioco(2) = Fuori90(Estratto(idEstr,aRuota(1),E) + arrAmbi(k,2))
'Next
' verifica se i numeri in gioco appena iindividuati rispettano la condizione voluta
If VerificaEsito(aNumInGioco,aRuota,idEstr + 1,1,Colpi) = True Then
' se entra qui vuol dire che i numeri in gioco hanno gia prodotto un esito
' QUINDI è qui che eventualmente non devi usare aRuota ma un nuovo parametro per identificare la ruota
' dove vuoi fare l'analisi visto che aRuota gia contiene la ruota dalla quale hai preso i numeri base
' 1)Vettore contenente i numeri del pronosticoE 2)Vettore contenente le ruote in gioco 3)Identificativo dell'estrazione dalal quale inizia la verifica
'4)sorte da verificare 5)Colpi di gioco , se omesso non c'è limite e la verifica procede fineche non trova l'esito o non fioniscono le estrazioni
'6)vettore contenente le posizioni estrazionali valide se omesso tutte le posizioni da 1 a 5 sono considerate valide
bFound = False ' i numeri in gioco non vanno bene
Exit For
End If
'End If
Next
If bFound Then ' se i numeri in gioco vanno bene allora ....
Call Scrivi("Questa coppia di numeri " & arrAmbi(k,1) & "-" & arrAmbi(k,2) & " sommata al " & np & "° num dell'estrazione generatrice (con step 9 dei cicli richiesti) non ha mai generato un' ambata",- 1,,4,1)
Call Scrivi("°°°°°°°°°°°°°°°°°°°°°°°°°°°° Cicli Richiesti " &(Fine - Inizio + 1)/9 & " °°°°°°°°°°°°°°°°°°°°°°°°°°°°",- 1,,4,1)
' gli adattatori trovati vengono valorizzati cosicche il chiamante possa saperli
Adattatore1 = arrAmbi(k,1)
Adattatore2 = arrAmbi(k,2)
Exit For
End If
Next
End Sub
Ultima modifica di un moderatore: