Option Explicit
Sub Main
Dim FIn,Es,Ini,R1,R2,Salvo50,Clp
Dim Caso,Casi,P1,P2,A,B,C,D,E1,E2
Dim PP1,PP2,DAB,DCD,DoA,DoB,DoC,DoD
FIn = EstrazioneFin
Ini = CInt(InputBox("Inserisci l'estrazione che vuoi iniziare",Salvo50,9542))'ESTRAZIONE 9542 ESEMPIO IN SPIEGAZIONI
Clp = CInt(InputBox(" Per quanti colpi vuoi giocare?",Salvo50,20))
Call ScegliRange(Ini,FIn,Ini,FIn)
Scrivi Space(12) & "PER RAIMBOW58 - DOPPIO AMBO - SCRIPT SALVO50",1,,4,,3,,1
For Es = Ini To FIn
Messaggio Es
AvanzamentoElab Ini,FIn,Es
Caso = 0
For R1 = 1 To 10
For R2 = R1 + 1 To 12
If R2 = 11 Then R2 = 12
For P1 = 1 To 4
For P2 = P1 + 1 To 5
A = Estratto(Es,R1,P1) : B = Estratto(Es,R1,P2)
C = Estratto(Es,R2,P1) : D = Estratto(Es,R2,P2)
DAB = Distanza(A,B) : DCD = Distanza(C,D)
DoA = Fuori90(A * 2) : DoB = Fuori90(B * 2)
DoC = Fuori90(C * 2) : DoD = Fuori90(D * 2)
If(DAB = 45) And((C = DoA Or C = DoB)Or(D = DoA Or D = DoB))_
Xor(DCD = 45) And((A = DoC Or A = DoD)Or(B = DoC Or B = DoD)) Then
'
Call AmboAmbataVersABC(DAB,DoA,DoB,Clp,Caso,Casi,Es,R1,R2,PP1,E1,A,B,PP2,E2,C)
Call AmboAmbataVersABD(DAB,DoA,DoB,Clp,Caso,Casi,Es,R1,R2,PP1,E1,A,B,PP2,E2,D)
Call AmbataAmboVersACD(DCD,DoC,DoD,Clp,Caso,Casi,Es,R1,R2,PP1,E1,A,PP2,E2,C,D)
Call AmbataAmboVersBCD(DCD,DoC,DoD,Clp,Caso,Casi,Es,R1,R2,PP1,E1,B,PP2,E2,C,D)
'
End If
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
ScriviResoconto
End Sub
Sub AmboAmbataVersABC(DAB,DoA,DoB,Clp,Caso,Casi,Es,R1,R2,PP1,E1,A,B,PP2,E2,C)
If DAB = 45 And(C = DoA Or C = DoB)Then
Caso = Caso + 1 : Casi = Casi + 1
Call Scrivi(String(89,"o") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,1)
Call Scrivi(String(80,"o") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,2)
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R1) & " ",1,0)
For PP1 = 1 To 5
E1 = Estratto(Es,R1,PP1)
If E1 = A Or E1 = B Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E1) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi(" <-- Evidenziati Distanza 45",1)
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R2) & " ",1,0)
For PP2 = 1 To 5
E2 = Estratto(Es,R2,PP2)
If E2 = C Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E2) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi()
Call Scrivi()
Dim ANum(3)
ANum(1) = C
ANum(2) = Fuori90(C * 2)
ANum(3) = Diametrale(C)
Scrivi Format2(ANum(1)) & " = Il doppio di " & Format2(A) & " e " & Format2(B),1
Scrivi Format2(ANum(2)) & " = Il doppio di " & Format2(ANum(1)),1
Scrivi Format2(ANum(3)) & " = Diametrale di " & Format2(C),1
Call Scrivi()
Call Giocata(ANum,R1,R2,Es,Clp)
End If
End Sub
Sub AmboAmbataVersABD(DAB,DoA,DoB,Clp,Caso,Casi,Es,R1,R2,PP1,E1,A,B,PP2,E2,D)
If DAB = 45 And(D = DoA Or D = DoB)Then
Caso = Caso + 1 : Casi = Casi + 1
Call Scrivi(String(89,"o") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,1)
Call Scrivi(String(80,"o") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,2)
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R1) & " ",1,0)
For PP1 = 1 To 5
E1 = Estratto(Es,R1,PP1)
If E1 = A Or E1 = B Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E1) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi(" <-- Evidenziati Distanza 45",1)
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R2) & " ",1,0)
For PP2 = 01 To 05
E2 = Estratto(Es,R2,PP2)
If E2 = D Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E2) & " ",1,0)
Call ColoreTesto(00)
Next
Call Scrivi()
Call Scrivi()
Dim ANum(3)
ANum(1) = D
ANum(2) = Fuori90(D * 2)
ANum(3) = Diametrale(D)
Scrivi Format2(ANum(1)) & " = Il doppio di " & Format2(A) & " e " & Format2(B),1
Scrivi Format2(ANum(2)) & " = Il doppio di " & Format2(ANum(1)),1
Scrivi Format2(ANum(3)) & " = Diametrale di " & Format2(D),1
Call Scrivi()
Call Giocata(ANum,R1,R2,Es,Clp)
End If
End Sub
Sub AmbataAmboVersACD(DCD,DoC,DoD,Clp,Caso,Casi,Es,R1,R2,PP1,E1,A,PP2,E2,C,D)
If DCD = 45 And(A = DoC Or A = DoD)Then
Caso = Caso + 1 : Casi = Casi + 1
Call Scrivi(String(89,"o") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,1)
Call Scrivi(String(80,"o") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,2)
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R1) & " ",1,0)
For PP1 = 1 To 5
E1 = Estratto(Es,R1,PP1)
If E1 = A Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E1) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi()
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R2) & " ",1,0)
For PP2 = 01 To 05
E2 = Estratto(Es,R2,PP2)
If E2 = C Or E2 = D Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E2) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi(" <-- Evidenziati Distanza 45",1)
Call Scrivi()
Dim ANum(3)
ANum(1) = A
ANum(2) = Fuori90(A * 2)
ANum(3) = Diametrale(A)
Scrivi Format2(ANum(1)) & " = Il doppio di " & Format2(C) & " e " & Format2(D),1
Scrivi Format2(ANum(2)) & " = Il doppio di " & Format2(ANum(1)),1
Scrivi Format2(ANum(3)) & " = Diametrale di " & Format2(A),1
Call Scrivi()
Call Giocata(ANum,R1,R2,Es,Clp)
End If
End Sub
Sub AmbataAmboVersBCD(DCD,DoC,DoD,Clp,Caso,Casi,Es,R1,R2,PP1,E1,B,PP2,E2,C,D)
If DCD = 45 And(B = DoC Or B = DoD)Then
Caso = Caso + 1 : Casi = Casi + 1
Call Scrivi(String(89,"o") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,1)
Call Scrivi(String(80,"o") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,2)
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R1) & " ",1,0)
For PP1 = 1 To 5
E1 = Estratto(Es,R1,PP1)
If E1 = B Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E1) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi()
Call Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es),1,0)
Call Scrivi(" " & SiglaRuota(R2) & " ",1,0)
For PP2 = 1 To 5
E2 = Estratto(Es,R2,PP2)
If E2 = C Or E2 = D Then
Call ColoreTesto(2)
Else
Call ColoreTesto(0)
End If
Call Scrivi(Format2(E2) & " ",1,0)
Call ColoreTesto(0)
Next
Call Scrivi(" <-- Evidenziati Distanza 45",1)
Call Scrivi()
Dim ANum(3)
ANum(1) = B
ANum(2) = Fuori90(B * 2)
ANum(3) = Diametrale(B)
Scrivi Format2(ANum(1)) & " = Il doppio di " & Format2(C) & " e " & Format2(D),1
Scrivi Format2(ANum(2)) & " = Il doppio di " & Format2(ANum(1)),1
Scrivi Format2(ANum(3)) & " = Diametrale di " & Format2(B),1
Call Scrivi()
Call Giocata(ANum,R1,R2,Es,Clp)
End If
End Sub
Function Giocata(ANum,R1,R2,Es,Clp)
Dim Ruo(2),Posta(3)
Ruo(1) = R1 : Ruo(2) = R2
Posta(2) = 1
'Posta(3) = 1
EliminaRipetuti ANum
ImpostaGiocata 1,ANum,Ruo,Posta,Clp
Gioca Es
End Function