'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