Option Explicit
Dim DM12,DM13,DM14,DM23,DM24,DM34,A,B,C,D
Dim M(4),Z(6),N(3)
Dim Amba(1),Ambo1(2),Ambo2(2),Ambo3(2)
Sub Main
Dim FIn,Es,Ini,Caso,Casi,Salvo50
Dim Clp1,Clp2,Visual
Dim R1,R2,P1,P2,P3,P4
Dim Fi_A,Fi_B,Fi_C,Fi_D,Fi_E,Fi_F,K
Dim Ruo(2),Posta(1),Poste(2),Posts(3)
Posta(1) = 1
Poste(2) = 1
Posts(2) = 1
Posts(3) = 1
FIn = EstrazioneFin
Ini = InputBox("Inserisci l'estrazione che vuoi iniziare",Salvo50,10650)
Clp1 = InputBox("Inserisci I colpi di gioco per l'ambata",Salvo50,7)
Clp2 = InputBox("Inserisci I colpi di gioco per le altre sorti",Salvo50,7)
Visual = InputBox("Se vuoi visualizzare i cerchiciclometrici metti 1, per non visualizzarli metti un qualsiasi altro numero ",Salvo50,1)
Call ScegliRange(Ini,FIn,Ini,FIn)
Scrivi Space(8) & "Due Ruote Stessa figura in rettangolo - Autore Bubù - Script Salvo50",1,,4,,3,,1
For Es = Ini To FIn
Messaggio Es
AvanzamentoElab Ini,FIn,Es
Caso = 0
For R1 = 1 To 12
If R1 = 11 Then R1 = 12
For P1 = 1 To 3
For P2 = P1 + 1 To 4
For P3 = P2 + 1 To 5
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
C = Estratto(Es,R1,P3)
Fi_A = Figura(A) : Fi_B = Figura(B) : Fi_C = Figura(C)
If A > 0 And Fi_A = Fi_B And Fi_B = Fi_C Then
For R2 = 1 To 12
If R2 <> R1 Then
If R2 = 11 Then R2 = 12
For P4 = 1 To 5
D = Estratto(Es,R2,P4)
If D > 0 And D <> A And D <> B And D <> C Then
Fi_D = Figura(D)
If Fi_D = Fi_A Then
M(1) = A : M(2) = B : M(3) = C : M(4) = D
Call OrdinaMatrice(M,1)
DM12 = Distanza(M(1),M(2)) : DM13 = Distanza(M(1),M(3)) : DM14 = Distanza(M(1),M(4))
DM23 = Distanza(M(2),M(3)) : DM24 = Distanza(M(2),M(4)) : DM34 = Distanza(M(3),M(4))
If(DM12 = 27 And DM23 = 18 And DM34 = 27 And DM14 = 18)_
Or(DM12 = 18 And DM23 = 27 And DM34 = 18 And DM14 = 27) Then
If(DM13 = 45 And DM14 = 18 And DM34 = 27) Or(DM24 = 45 And DM34 = 18 And DM23 = 27)_
Or(DM13 = 45 And DM23 = 18 And DM12 = 27) Or(DM24 = 45 And DM12 = 18 And DM14 = 27) Then
Call Bubu
Caso = Caso + 1
Casi = Casi + 1
ColoreTesto 2
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000")
ColoreTesto 1
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000")
ColoreTesto 0
Scrivi
ReDim MatrCasella(4,1)
MatrCasella(1,0) = R1
MatrCasella(1,1) = P1
MatrCasella(2,0) = R1
MatrCasella(2,1) = P2
MatrCasella(3,0) = R1
MatrCasella(3,1) = P3
MatrCasella(4,0) = R2
MatrCasella(4,1) = P4
Call DisegnaEstrazione(Es,MatrCasella,,vbBlue)
Scrivi
If Visual = 1 Then
DisegnaCerchioCiclometrico N,1,1,,,1,1
DisegnaCerchioCiclometrico M,1,1,,,1,1
DisegnaCerchioCiclometrico Z,1,1,,,1,1
End If
Scrivi
Ruo(1) = R1 : Ruo(2) = R2
ImpostaGiocata 1,Amba,Ruo,Posta,Clp1
ImpostaGiocata 2,Ambo1,Ruo,Poste,Clp2
ImpostaGiocata 3,Ambo2,Ruo,Poste,Clp2
ImpostaGiocata 4,Ambo3,Ruo,Poste,Clp2
Gioca Es
'
End If
End If
End If
End If
If ScriptInterrotto Then Exit Sub
Next
End If
Next
End If '----
Next
Next
Next
Next
For R1 = 1 To 10
For P1 = 1 To 4
For P2 = P1 + 1 To 5
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
Fi_A = Figura(A) : Fi_B = Figura(B)
If A > 0 And Fi_A = Fi_B Then
For R2 = R1 + 1 To 12
If R2 = 11 Then R2 = 12
For P3 = 1 To 4
For P4 = P3 + 1 To 5
C = Estratto(Es,R2,P3)
D = Estratto(Es,R2,P4)
If C > 0 And C <> A And C <> B And D <> A And D <> B Then
Fi_C = Figura(C) : Fi_D = Figura(D)
If Fi_C = Fi_D And Fi_D = Fi_A Then
M(1) = A : M(2) = B : M(3) = C : M(4) = D
Call OrdinaMatrice(M,1)
DM12 = Distanza(M(1),M(2)) : DM13 = Distanza(M(1),M(3)) : DM14 = Distanza(M(1),M(4))
DM23 = Distanza(M(2),M(3)) : DM24 = Distanza(M(2),M(4)) : DM34 = Distanza(M(3),M(4))
If(DM12 = 27 And DM23 = 18 And DM34 = 27 And DM14 = 18)_
Or(DM12 = 18 And DM23 = 27 And DM34 = 18 And DM14 = 27) Then
If(DM13 = 45 And DM14 = 18 And DM34 = 27) Or(DM24 = 45 And DM34 = 18 And DM23 = 27)_
Or(DM13 = 45 And DM23 = 18 And DM12 = 27) Or(DM24 = 45 And DM12 = 18 And DM14 = 27) Then
Call Bubu
Caso = Caso + 1
Casi = Casi + 1
ColoreTesto 2
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000")
ColoreTesto 1
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000")
ColoreTesto 0
Scrivi
ReDim MatrCasella(4,1)
MatrCasella(1,0) = R1
MatrCasella(1,1) = P1
MatrCasella(2,0) = R1
MatrCasella(2,1) = P2
MatrCasella(3,0) = R2
MatrCasella(3,1) = P3
MatrCasella(4,0) = R2
MatrCasella(4,1) = P4
Call DisegnaEstrazione(Es,MatrCasella,,vbBlue)
Scrivi
If Visual = 1 Then
DisegnaCerchioCiclometrico N,1,1,,,1,1
DisegnaCerchioCiclometrico M,1,1,,,1,1
DisegnaCerchioCiclometrico Z,1,1,,,1,1
End If
Ruo(1) = R1 : Ruo(2) = R2
ImpostaGiocata 1,Amba,Ruo,Posta,Clp1
ImpostaGiocata 2,Ambo1,Ruo,Poste,Clp2
ImpostaGiocata 3,Ambo2,Ruo,Poste,Clp2
ImpostaGiocata 4,Ambo3,Ruo,Poste,Clp2
Gioca Es
End If
End If
End If
End If
Next
If ScriptInterrotto Then Exit Sub
Next
Next
End If
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
ScriviResoconto
End Sub
Function Bubu
If(DM13 = 45 And DM14 = 18 And DM34 = 27) Then
Amba(1) = M(2)
Ambo1(1) = M(2) : Ambo1(2) = Fuori90(M(2) + 9)
Ambo2(1) = M(2) : Ambo2(2) = Fuori90(M(4) + 9)
N(1) = M(1) : N(2) = M(3) : N(3) = M(4)
End If
'
If(DM24 = 45 And DM24 = 18 And DM14 = 27) Then
Amba(1) = M(1)
Ambo1(1) = M(1) : Ambo1(2) = Fuori90(M(1) + 9)
Ambo2(1) = M(1) : Ambo2(2) = Fuori90(M(3) + 9)
N(1) = M(2) : N(2) = M(3) : N(3) = M(4)
End If
'
If(DM13 = 45 And DM23 = 18 And DM12 = 27) Then
Amba(1) = M(4)
Ambo1(1) = M(4) : Ambo1(2) = Fuori90(M(4) + 9)
Ambo2(1) = M(4) : Ambo2(2) = Fuori90(M(2) + 9)
N(1) = M(1) : N(2) = M(2) : N(3) = M(3)
End If
'
If(DM24 = 45 And DM12 = 18 And DM14 = 27) Then
Amba(1) = M(3)
Ambo1(1) = M(3) : Ambo1(2) = Fuori90(M(3) + 9)
Ambo2(1) = M(3) : Ambo2(2) = Fuori90(M(1) + 9)
N(1) = M(1) : N(2) = M(2) : N(3) = M(4)
End If
Ambo3(1) = Ambo1(2) : Ambo3(2) = Ambo2(2)
Z(1) = A : Z(2) = B : Z(3) = C : Z(4) = D : Z(5) = Ambo3(1) : Z(6) = Ambo3(2)
End Function