Option Explicit
Sub Main
Dim FIn,Ini,A,B,C,D,Clp,Es,Salvo50,Sp,Ok
Dim R1,R2,P1,P2,P3,P4,P5,P6,P7,P8,P9,E1,E2
Dim Ava,Ind,Es2,Es3,Caso,Casi
Dim SoAB,DiAB,DeA,DeB,DeC,DeD,CaA,CaB,CaC,CaD
Dim SoAD,SoBC,SoDeAD,SoDeBC,SoCaAD,SoCaBC
Dim Amba(1),Ambo1(2),Ambo2(2)
Dim Ruo(2),Ruote(3),Po1(1),Po2(2)
FIn = EstrazioneFin
Ini = CInt(InputBox("Inserisci l'estrazione che vuoi iniziare",Salvo50,9884))
Clp = CInt(InputBox(" Per quanti colpi vuoi giocare?",Salvo50,5))
Ind = CInt(InputBox(" Quante estrazioni a ritroso per cercare l'ambo Derivato?",Salvo50,15))
Ava = CInt(InputBox(" Quante estrazioni avanti per cercare l'ambo Derivato?",Salvo50,11))
Call ScegliRange(Ini,FIn,Ini,FIn)
Scrivi Space(5) & "La Diagonale Infallibile - Ruote Diverse - A. Longo - Script Salvo50" & Space(5),1,,4,,3,,1
Po1(1) = 1
Po2(2) = 1
Sp = " "
For Es = Ini To FIn
Messaggio Es
AvanzamentoElab Ini,FIn,Es
Caso = 0
For R1 = 1 To 10
For P1 = 1 To 4
P2 = P1 + 1
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
SoAB = Fuori90(A + B)
DiAB = Differenza(A,B)
Es3 = CInt(Es - Ind + 1)
For Es2 = Es - 1 To Es3 Step - 1
For R2 = R1 + 1 To 12
If R2 = 11 Then R2 = 12
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If Differenza(P3,P4) < 3 Then
C = Estratto(Es2,R2,P3)
D = Estratto(Es2,R2,P4)
If A > 0 And C > 0 And A <> C And A <> D And B <> C And B <> D Then
If(C = SoAB And D = DiAB) Or(D = SoAB And C = DiAB) Then
'C---D
'| |
'A---B
DeA = Decina(A) : CaA = Cadenza(A)
DeB = Decina(B) : CaB = Cadenza(B)
DeC = Decina(C) : CaC = Cadenza(C)
DeD = Decina(D) : CaD = Cadenza(D)
SoDeAD = DeA + DeD : SoCaAD = CaA + CaD
SoDeBC = DeB + DeC : SoCaBC = CaB + CaC
Ok = 0
If SoDeBC <= 9 And SoCaBC <= 9 Then
SoBC = Fuori90(B + C)
Ok = 1
Else
If SoDeAD <= 9 And SoCaAD <= 9 Then
SoAD = Fuori90(A + D)
Ok = 2
End If
End If
If Ok = 1 Or Ok = 2 Then
If Ok = 2 Then
Amba(1) = SoAD
Ambo1(1) = SoAD : Ambo1(2) = A
Ambo2(1) = SoAD : Ambo2(2) = D
End If
If Ok = 1 Then
Amba(1) = SoBC
Ambo1(1) = SoBC : Ambo1(2) = B
Ambo2(1) = SoBC : Ambo2(2) = C
End If
'
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
Scrivi(" Estrazione n." & Format2(Es2) & " del " & DataEstrazione(Es2)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P8 = 1 To 5
E2 = Estratto(Es2,R2,P8)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Derivato ",1,,,1
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P7 = 1 To 5
E1 = Estratto(Es,R1,P7)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Base ",1,,,1
Scrivi "Ambi in quadro",1,,,1
Scrivi Space(3) & Format2(C) & Sp & Format2(D),1,0,,2
Scrivi Space(16) & Format2(A) & " + " & Format2(B) & " = " & Format2(SoAB),1,0
Scrivi " 1° elemento Ambo Derivato ",1,,,1
Scrivi Space(3) & Format2(A) & Sp & Format2(B),1,0,,2
Scrivi Space(12) & "Abs " & Format2(A) & " - " & Format2(B) & " = " & Format2(DiAB),1,0
Scrivi " 2° elemento Ambo Derivato ",1,,,1
Scrivi Space(15) & " Ricerca ambo derivato a Ritroso per max " & Ind & " Estrazioni",1,,,2
If Ok = 1 Then
Scrivi Space(25) & Format2(C) & " + " & Format2(B) & " = " & Format2(SoBC) & " Ambata",1
Scrivi Space(35) & Format2(C) & " Abbinamento 1",1
Scrivi Space(35) & Format2(B) & " Abbinamento 2",1
End If
If Ok = 2 Then
Scrivi Space(25) & Format2(D) & " + " & Format2(A) & " = " & Format2(SoAD) & " Ambata",1
Scrivi Space(35) & Format2(D) & " Abbinamento 1",1
Scrivi Space(35) & Format2(A) & " Abbinamento 2",1
End If
Scrivi
Ruo(1) = R1 : Ruo(2) = R2
Ruote(1) = R1 : Ruote(2) = R2 : Ruote(3) = TU_
ImpostaGiocata 1,Amba,Ruo,Po1,Clp
ImpostaGiocata 2,Ambo1,Ruote,Po2,Clp
ImpostaGiocata 3,Ambo2,Ruote,Po2,Clp
Gioca Es,,,1
End If
End If
End If
End If
Next
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
'
For R1 = 1 To 10
For P1 = 1 To 4
P2 = P1 + 1
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
SoAB = Fuori90(A + B)
DiAB = Differenza(A,B)
Es3 = CInt(Es + Ava + 1)
If Es3 > FIn Then Es3 = FIn
For Es2 = Es + 1 To Es3
For R2 = R1 + 1 To 12
If R2 = 11 Then R2 = 12
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If Differenza(P3,P4) < 3 Then
C = Estratto(Es2,R2,P3)
D = Estratto(Es2,R2,P4)
If A > 0 And C > 0 And A <> C And A <> D And B <> C And B <> D Then
If(C = SoAB And D = DiAB) Or(D = SoAB And C = DiAB) Then
'A---B
'| |
'C---D
DeA = Decina(A) : CaA = Cadenza(A)
DeB = Decina(B) : CaB = Cadenza(B)
DeC = Decina(C) : CaC = Cadenza(C)
DeD = Decina(D) : CaD = Cadenza(D)
SoDeAD = DeA + DeD : SoCaAD = CaA + CaD
SoDeBC = DeB + DeC : SoCaBC = CaB + CaC
Ok = 0
If SoDeAD <= 9 And SoCaAD <= 9 Then
SoAD = Fuori90(A + D)
Ok = 1
Else
If SoDeBC <= 9 And SoCaBC <= 9 Then
SoBC = Fuori90(B + C)
Ok = 2
End If
End If
If Ok = 1 Or Ok = 2 Then
If Ok = 1 Then
Amba(1) = SoAD
Ambo1(1) = SoAD : Ambo1(2) = A
Ambo2(1) = SoAD : Ambo2(2) = D
End If
If Ok = 2 Then
Amba(1) = SoBC
Ambo1(1) = SoBC : Ambo1(2) = B
Ambo2(1) = SoBC : Ambo2(2) = C
End If
'
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P7 = 1 To 5
E1 = Estratto(Es,R1,P7)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Base ",1,,,1
Scrivi(" Estrazione n." & Format2(Es2) & " del " & DataEstrazione(Es2)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P8 = 1 To 5
E2 = Estratto(Es2,R2,P8)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Derivato ",1,,,1
Scrivi "Ambi in quadro",1,,,1
Scrivi Space(3) & Format2(A) & Sp & Format2(B),1,0,,2
Scrivi Space(16) & Format2(A) & " + " & Format2(B) & " = " & Format2(SoAB),1,0
Scrivi " 1° elemento Ambo Derivato ",1,,,1
Scrivi Space(3) & Format2(C) & Sp & Format2(D),1,0,,2
Scrivi Space(12) & "Abs " & Format2(A) & " - " & Format2(B) & " = " & Format2(DiAB),1,0
Scrivi " 2° elemento Ambo Derivato ",1,,,1
Scrivi Space(15) & " Ricerca ambo derivato in Avanti per max " & Ava & " Estrazioni",1,,,2
If Ok = 1 Then
Scrivi Space(25) & Format2(A) & " + " & Format2(D) & " = " & Format2(SoAD) & " Ambata",1
Scrivi Space(35) & Format2(A) & " Abbinamento 1",1
Scrivi Space(35) & Format2(D) & " Abbinamento 2",1
End If
If Ok = 2 Then
Scrivi Space(25) & Format2(B) & " + " & Format2(C) & " = " & Format2(SoBC) & " Ambata",1
Scrivi Space(35) & Format2(B) & " Abbinamento 1",1
Scrivi Space(35) & Format2(C) & " Abbinamento 2",1
End If
Ruo(1) = R1 : Ruo(2) = R2
Ruote(1) = R1 : Ruote(2) = R2 : Ruote(3) = TU_
ImpostaGiocata 1,Amba,Ruo,Po1,Clp
ImpostaGiocata 2,Ambo1,Ruote,Po2,Clp
ImpostaGiocata 3,Ambo2,Ruote,Po2,Clp
Gioca Es2,,,1
End If
End If
End If
End If
Next
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
Next
ScriviResoconto
End Sub