Ho Trovato nel mio archivio questo Script che mi da errore
chi puo' sistemarlo ?
Sub Main()
Dim anum (7)
Dim numeri(2)
Dim anumx (3)
Dim pr,pp,cv,cm
Dim rt,ns
Dim rtx
dstart = 7000
'dend = 6877
dend = EstrazioneFin
For i = dstart To dend
AvanzamentoElab dstart,dend,i
For rt = 1 To 10
For rtx = 1 To 10
ImpostaRuota rtx,False
Next
ImpostaRuota rt,True
For xp = 1 To 5
anum (xp) = Estratto ( i , rt , xp )
Next
ds60 = False
ns = 1
While (( ns <= 4 ) And ( ds60 = False ))
x1 = Estratto ( i , rt,ns )
x2 = Estratto ( i , rt,ns + 1)
If Fuori90( Abs(x1 - x2)) = 60 Then
ds60 = True
numeri(1) = x1
numeri(2) = x2
anum(ns) = 0
anum(ns+1) = 0
End If
ns = ns + 1
Wend
If ds60 Then 'Si può partire con la giocata ....
' anum (6) = numeri(1)
' anum (7) = numeri(2)
' Si azzerano i numeri gi… contenuti nelle "n1" e "n2"
' EliminaRipetuti ( anum )
' Si ordinano i numeri in modo decrescente. Così nelle variabili
' "a1", "a2" e "a3" rimangono i restanti 3 numeri, cioè tutti tranne n1 e n2
OrdinaNumeriDec ( anum )
anumx(1) = anum(1)
anumx(2) = anum(2)
anumx(3) = anum(3)
' I numeri si ordinano in modo crescente
OrdinaNumeri ( anumx )
' ============ SI PREPARANO I NUMERI PER IL GIOCO ============
' Caso 1): il secondo numero è minore o uguale 30
If anumx(2) <= 30 Then
x1 = Fuori90(anumx(1) + 12 )
x2 = Fuori90(anumx(1) + 73 )
y1 = Fuori90(anumx(2) + 12 )
y2 = Fuori90(anumx(2) + 52 )
z1 = Fuori90(anumx(3) + 40 )
z2 = Fuori90(anumx(3) + 37 )
gio i , anumx, x1,x2,y1,y2,z1,z2, rt
ElseIf anumx(2) >= 61 Then ' Caso 2): il secondo numero è maggiore o uguale 61
z1 = Fuori90(anumx(3) + 69 )
z2 = Fuori90(anumx(3) + 48 )
y1 = Fuori90(anumx(2) + 49 )
y2 = Fuori90(anumx(2) + 68 )
x1 = Fuori90(anumx(1) + 78 )
x2 = Fuori90(anumx(1) + 86 )
gio i , anumx, x1,x2,y1,y2,z1,z2, rt
ElseIf anumx(2) <= 45 Then ' Caso 3): il secondo numero è maggiore o uguale 31 e minore o uguale 45
x1 = Fuori90(anumx(1) + 24 )
x2 = Fuori90(anumx(1) + 59 )
y1 = Fuori90(anumx(2) + 21 )
y2 = Fuori90(anumx(2) + 48 )
' al posto del terzo numero si mette la media
' del secondo e del terzo numero, trascurando la parte decimale
anumx(3) = CInt ((anumx(2)+anumx(3))\2)
z1 = Fuori90(anumx(3) + 81)
z2 = Fuori90(anumx(3) + 44)
gio i , anumx , x1,x2,y1,y2,z1,z2, rt
ElseIf anumx(2) >= 46 Then ' Caso 4): il secondo numero è maggiore o uguale 46 e minore o uguale 60
z1 = Fuori90(anumx(3) + 7)
z2 = Fuori90(anumx(3) + 25)
y1 = Fuori90(anumx(2) + 1 )
y2 = Fuori90(anumx(2) + 17 )
' al posto del primo numero si mette la media
' del primo e del secondo numero, trascurando la parte decimale
anumx(1) = CInt ((anumx(1)+anumx(2))\2)
x1 = Fuori90(anumx(1) + 54)
x2 = Fuori90(anumx(1) + 59)
gio i , anumx, x1,x2,y1,y2,z1,z2, rt
End If
End If
Next
Next
ScriviResoconto
End Sub
Function Gio ( i , anumx , x1,x2,y1,y2,z1,z2, rt)
Dim procedi
Dim gnum (10)
Dim giovar1 ( 6 )
Dim giovar2 ( 6 )
Dim poste(5)
Dim grt (1)
Dim nr (1)
Dim ux (5)
Dim durata
Dim sorteint
Dim crs
Dim igcnt
procedi = True
ResettaGiocate
' Nelle variabili "u1", "u2" e "u3" si memorizzano i ritardi di 3 numeri,
' riferiti all'estrazione precedente.
uxs = 0
For crs = 1 To 3
nr(1) = anumx(crs)
ux(crs) = Ritardo ( i-250 , i-1 , nr , 1 )
uxs = uxs + ux(crs)
Next
'Scrivi DataEstrazione(i)
'Scrivi CStr(anumx(1)) & "." & CStr(anumx(2)) & "." & CStr(anumx(3))
'Scrivi CStr(ux(1)) & "." & CStr(ux(2)) & "." & CStr(ux(3))
' I ritardi si ordinano in modo crescente
OrdinaNumeri ux
' Se la somma di tutti e 3 ritardi e minore o uguale a 10, oppure
' maggiore o uguale a 179 non si gioca
If ( uxs<=9 Or uxs>= 179 ) Then
procedi = False
End If
' Se la distanza tra il ritardo massimo "u3" e quello minore "u1"
' è maggiore o uguale a 90 non si gioca
If ux(3)-ux(1)>=90 Then
procedi = False
End If
If procedi Then
grt (1) = rt
durata = 6
sorteint = 1
poste(2) = 2000
minrit = 20
giovar1(1) = anumx(1)
giovar1(2) = anumx(1)
giovar1(3) = anumx(2)
giovar1(4) = anumx(2)
giovar1(5) = anumx(3)
giovar1(6) = anumx(3)
giovar2(1) = x1
giovar2(2) = x2
giovar2(3) = y1
giovar2(4) = y2
giovar2(5) = z1
giovar2(6) = z2
Scrivi DataEstrazione(i)
igcnt = 0
For cnt = 1 To 6
gnum(1) = giovar1(cnt)
gnum(2) = giovar2(cnt)
ritx = Ritardo ( i-20 , i-1, gnum, 2 )
Scrivi CStr(gnum(1)) & "." & CStr(gnum(2)) & " Rit. per ambo = " & CStr(ritx)
If ritx >= 10 Then
igcnt = igcnt + 1
ImpostaGiocata igcnt,gnum,grt,poste,durata,sorteint
End If
Next
Gioca i
End If
End Function
chi puo' sistemarlo ?
Sub Main()
Dim anum (7)
Dim numeri(2)
Dim anumx (3)
Dim pr,pp,cv,cm
Dim rt,ns
Dim rtx
dstart = 7000
'dend = 6877
dend = EstrazioneFin
For i = dstart To dend
AvanzamentoElab dstart,dend,i
For rt = 1 To 10
For rtx = 1 To 10
ImpostaRuota rtx,False
Next
ImpostaRuota rt,True
For xp = 1 To 5
anum (xp) = Estratto ( i , rt , xp )
Next
ds60 = False
ns = 1
While (( ns <= 4 ) And ( ds60 = False ))
x1 = Estratto ( i , rt,ns )
x2 = Estratto ( i , rt,ns + 1)
If Fuori90( Abs(x1 - x2)) = 60 Then
ds60 = True
numeri(1) = x1
numeri(2) = x2
anum(ns) = 0
anum(ns+1) = 0
End If
ns = ns + 1
Wend
If ds60 Then 'Si può partire con la giocata ....
' anum (6) = numeri(1)
' anum (7) = numeri(2)
' Si azzerano i numeri gi… contenuti nelle "n1" e "n2"
' EliminaRipetuti ( anum )
' Si ordinano i numeri in modo decrescente. Così nelle variabili
' "a1", "a2" e "a3" rimangono i restanti 3 numeri, cioè tutti tranne n1 e n2
OrdinaNumeriDec ( anum )
anumx(1) = anum(1)
anumx(2) = anum(2)
anumx(3) = anum(3)
' I numeri si ordinano in modo crescente
OrdinaNumeri ( anumx )
' ============ SI PREPARANO I NUMERI PER IL GIOCO ============
' Caso 1): il secondo numero è minore o uguale 30
If anumx(2) <= 30 Then
x1 = Fuori90(anumx(1) + 12 )
x2 = Fuori90(anumx(1) + 73 )
y1 = Fuori90(anumx(2) + 12 )
y2 = Fuori90(anumx(2) + 52 )
z1 = Fuori90(anumx(3) + 40 )
z2 = Fuori90(anumx(3) + 37 )
gio i , anumx, x1,x2,y1,y2,z1,z2, rt
ElseIf anumx(2) >= 61 Then ' Caso 2): il secondo numero è maggiore o uguale 61
z1 = Fuori90(anumx(3) + 69 )
z2 = Fuori90(anumx(3) + 48 )
y1 = Fuori90(anumx(2) + 49 )
y2 = Fuori90(anumx(2) + 68 )
x1 = Fuori90(anumx(1) + 78 )
x2 = Fuori90(anumx(1) + 86 )
gio i , anumx, x1,x2,y1,y2,z1,z2, rt
ElseIf anumx(2) <= 45 Then ' Caso 3): il secondo numero è maggiore o uguale 31 e minore o uguale 45
x1 = Fuori90(anumx(1) + 24 )
x2 = Fuori90(anumx(1) + 59 )
y1 = Fuori90(anumx(2) + 21 )
y2 = Fuori90(anumx(2) + 48 )
' al posto del terzo numero si mette la media
' del secondo e del terzo numero, trascurando la parte decimale
anumx(3) = CInt ((anumx(2)+anumx(3))\2)
z1 = Fuori90(anumx(3) + 81)
z2 = Fuori90(anumx(3) + 44)
gio i , anumx , x1,x2,y1,y2,z1,z2, rt
ElseIf anumx(2) >= 46 Then ' Caso 4): il secondo numero è maggiore o uguale 46 e minore o uguale 60
z1 = Fuori90(anumx(3) + 7)
z2 = Fuori90(anumx(3) + 25)
y1 = Fuori90(anumx(2) + 1 )
y2 = Fuori90(anumx(2) + 17 )
' al posto del primo numero si mette la media
' del primo e del secondo numero, trascurando la parte decimale
anumx(1) = CInt ((anumx(1)+anumx(2))\2)
x1 = Fuori90(anumx(1) + 54)
x2 = Fuori90(anumx(1) + 59)
gio i , anumx, x1,x2,y1,y2,z1,z2, rt
End If
End If
Next
Next
ScriviResoconto
End Sub
Function Gio ( i , anumx , x1,x2,y1,y2,z1,z2, rt)
Dim procedi
Dim gnum (10)
Dim giovar1 ( 6 )
Dim giovar2 ( 6 )
Dim poste(5)
Dim grt (1)
Dim nr (1)
Dim ux (5)
Dim durata
Dim sorteint
Dim crs
Dim igcnt
procedi = True
ResettaGiocate
' Nelle variabili "u1", "u2" e "u3" si memorizzano i ritardi di 3 numeri,
' riferiti all'estrazione precedente.
uxs = 0
For crs = 1 To 3
nr(1) = anumx(crs)
ux(crs) = Ritardo ( i-250 , i-1 , nr , 1 )
uxs = uxs + ux(crs)
Next
'Scrivi DataEstrazione(i)
'Scrivi CStr(anumx(1)) & "." & CStr(anumx(2)) & "." & CStr(anumx(3))
'Scrivi CStr(ux(1)) & "." & CStr(ux(2)) & "." & CStr(ux(3))
' I ritardi si ordinano in modo crescente
OrdinaNumeri ux
' Se la somma di tutti e 3 ritardi e minore o uguale a 10, oppure
' maggiore o uguale a 179 non si gioca
If ( uxs<=9 Or uxs>= 179 ) Then
procedi = False
End If
' Se la distanza tra il ritardo massimo "u3" e quello minore "u1"
' è maggiore o uguale a 90 non si gioca
If ux(3)-ux(1)>=90 Then
procedi = False
End If
If procedi Then
grt (1) = rt
durata = 6
sorteint = 1
poste(2) = 2000
minrit = 20
giovar1(1) = anumx(1)
giovar1(2) = anumx(1)
giovar1(3) = anumx(2)
giovar1(4) = anumx(2)
giovar1(5) = anumx(3)
giovar1(6) = anumx(3)
giovar2(1) = x1
giovar2(2) = x2
giovar2(3) = y1
giovar2(4) = y2
giovar2(5) = z1
giovar2(6) = z2
Scrivi DataEstrazione(i)
igcnt = 0
For cnt = 1 To 6
gnum(1) = giovar1(cnt)
gnum(2) = giovar2(cnt)
ritx = Ritardo ( i-20 , i-1, gnum, 2 )
Scrivi CStr(gnum(1)) & "." & CStr(gnum(2)) & " Rit. per ambo = " & CStr(ritx)
If ritx >= 10 Then
igcnt = igcnt + 1
ImpostaGiocata igcnt,gnum,grt,poste,durata,sorteint
End If
Next
Gioca i
End If
End Function