'Chiesto da Juri
'due ruote
'Con controllo pronostico in avanti
'Script by Salvo50
Option Explicit
Sub Main
Dim Es,Fin,R1,R2,A,B,C,D,E1,E2
Dim P1,P2,P3,P4,P5,P6,Caso,Casi,Ini
Dim H12,H23,H34,X1,X2,Ok,Cerch,Salvo50
Dim Sf1,Sf2,Av,SAC,SBD,SAD,SBC,Eseg_Control
Dim H(4),L(6),Ruota(2),Nu1(1),Nu2(1)
Fin = EstrazioneFin
Eseg_Control = CInt(InputBox(" Vuoi fare il controllo? - (SI = 1) - (NO un qualsiasi altro numero) ",Salvo50,0))
Av = 0
If Eseg_Control = 1 Then
Av = CInt(InputBox(" Per quanti colpi vuoi andare avanti nel controllo del pronostico? ",Salvo50,9))
End If
Cerch = InputBox(" Vuoi visualizzare il cerchi ciclometrico, se si metti 1 altrimenti un qualsiasi altro numero) ",Salvo50,0)
Ini = InputBox("Da quale estrazione vuoi iniziare?",,9330)
Call ScegliRange(Ini,Fin,Ini,EstrazioneFin)
For Es = Ini To Fin
Messaggio Es
AvanzamentoElab Ini,Fin,Es
Caso = 0
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)
For R2 = R1 + 1 To 12
If R2 = 11 Then R2 = 12
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If((P1 = P3 And P2 = P4) Xor(P2 = P1 + 1 And P4 = P3 + 1))Xor((P1 = P3 And P2 = P4) And(P2 = P1 + 1 And P4 = P3 + 1)) Then
C = Estratto(Es,R2,P3) : If C > 0 Then
D = Estratto(Es,R2,P4)
If(Distanza(A,B) = 45) And((Distanza(C,D) = 30) Or(Distanza(C,D) = 60)) _
Xor(Distanza(C,D) = 45) And((Distanza(A,B) = 30) Or(Distanza(A,B) = 60)) Then
SAC = Fuori90(A + C) : SBD = Fuori90(B + D) : SAD = Fuori90(A + D) : SBC = Fuori90(B + C)
H(1) = SAC : H(2) = SBD : H(3) = SAD : H(4) = SBC
Call OrdinaMatrice(H,1)
H12 = Distanza(H(1),H(2)) : H23 = Distanza(H(2),H(3)) : H34 = Distanza(H(3),H(4))
Ok = 0
If H12 = 15 And H23 = 15 And H34 = 45 Then X1 = H(3) + 15 : X2 = X1 + 15 : Ok = 1
If H12 = 45 And H23 = 15 And H34 = 15 Then X1 = H(1) + 15 : X2 = X1 + 15 : Ok = 1
If H12 = 15 And H23 = 45 And H34 = 15 Then X1 = H(2) + 15 : X2 = X1 + 15 : Ok = 1
If H12 = 15 And H23 = 30 And H34 = 30 Then X1 = H(2) + 15 : X2 = H(3) + 15 : Ok = 1
If H12 = 30 And H23 = 30 And H34 = 15 Then X1 = H(1) + 15 : X2 = H(2) + 15 : Ok = 1
If H12 = 30 And H23 = 15 And H34 = 30 Then X1 = H(1) + 15 : X2 = H(3) + 15 : Ok = 1
If H12 = 15 And H23 = 15 And H34 = 15 Then X1 = H(4) + 15 : X2 = X1 + 15 : X1 = Fuori90(X1) : X2 = Fuori90(X2) : Ok = 1
If H12 = 15 And H23 = 15 And H34 = 30 Then X1 = H(3) + 15 : X2 = H(4) + 15 : X2 = Fuori90(X2) : Ok = 1
If H12 = 30 And H23 = 15 And H34 = 15 Then X1 = H(1) + 15 : X2 = H(4) + 15 : X2 = Fuori90(X2) : Ok = 1
If H12 = 15 And H23 = 30 And H34 = 15 Then X1 = H(2) + 15 : X2 = H(4) + 15 : X2 = Fuori90(X2) : Ok = 1
If Ok = 1 Then
L(1) = H(1) : L(2) = H(2) : L(3) = H(3) : L(4) = H(4) : L(5) = X1 : L(6) = X2
Call OrdinaMatrice(L,1)
Ruota(1) = R1
Ruota(2) = R2
Nu1(1) = X1 : Nu2(1) = X2
If Eseg_Control = 1 Then
Sf1 = SerieFreqTurbo(Es + 1,Es + Av,Nu1,Ruota,1)
Sf2 = SerieFreqTurbo(Es + 1,Es + Av,Nu2,Ruota,1)
End If
If Sf1 = 0 Or Sf2 = 0 Then
Caso = Caso + 1
Casi = Casi + 1
ColoreTesto 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000")
ColoreTesto 2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000")
ColoreTesto 0
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P5 = 1 To 5
E1 = Estratto(Es,R1,P5)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P6 = 1 To 5
E2 = Estratto(Es,R2,P6)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi
Scrivi
Scrivi " Ambi " & Space(9) & " Somme Vert." & Space(10) & " Somme Diag.",1
Scrivi " " & Format2(A) & Space(1) & Format2(B) & Space(16) & Format2(SAC) & Space(19) & Format2(SAD),1
Scrivi " " & Format2(C) & Space(1) & Format2(D) & Space(16) & Format2(SBD) & Space(19) & Format2(SBC),1
Scrivi
Scrivi " I 4 numeri ricavati dalle somme vert. e diag. " & Format2(H(1)) & " " & Format2(H(2)),1,0
Scrivi " " & Format2(H(3)) & " " & Format2(H(4)),1
Scrivi " I 2 numeri mancanti per formare l'esagono regolare ",1,0
ColoreTesto 2
Scrivi Format2(X1) & " " & Format2(X2),1 : ColoreTesto 0
Scrivi " I 6 numeri distanza 15 che formano l'esagono " & Format2(L(1)) & " " & Format2(L(2)),1,0
Scrivi " " & Format2(L(3)) & " " & Format2(L(4)) & " " & Format2(L(5)) & " " & Format2(L(6)),1
Scrivi
If Eseg_Control = 1 Then
If Sf1 = 0 And Sf2 = 0 Then
Scrivi " Nei " & Format2(Av) & " Colpi in avanti ",1,0
ColoreTesto 2
Scrivi Format2(X1) & " e " & Format2(X2),1,0 : ColoreTesto 0
Scrivi " Non sono usciti",1
End If
If Sf2 = 0 And Sf1 <> 0 Then
Scrivi " Nei " & Format2(Av) & " Colpi in avanti dei numeri ",1,0
ColoreTesto 2
Scrivi Format2(X1) & " e " & Format2(X2),1,0 : ColoreTesto 0
Scrivi " è uscito solo ",1,0
ColoreTesto 2
Scrivi Format2(X1),1 : ColoreTesto 0
End If
If Sf1 = 0 And Sf2 <> 0 Then
Scrivi " Nei " & Format2(Av) & " Colpi in avanti dei numeri ",1,0
ColoreTesto 2
Scrivi Format2(X1) & " e " & Format2(X2),1,0 : ColoreTesto 0
Scrivi " è uscito solo ",1,0
ColoreTesto 2
Scrivi Format2(X2),1 : ColoreTesto 0
End If
End If
If Cerch = 1 Then
DisegnaCerchioCiclometrico L,1,,,,1
End If
End If
End If
End If
End If
End If
Next
Next
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
End Sub