Sub main()
Dim Ambi_o(),Ambi_vd()
tipo=(InputBox("Cosa vuoi cercare ? " &Vblf&_
Vblf& "Distanza ciclometrica = 1" &Vblf&_
Vblf& "Differenza aritmetica = 2" &Vblf&_
Vblf& "Somme = 3" ,,1))
If tipo="" Or tipo >3 Then
MsgBox("Hai inserito un valore non valido")
Exit Sub
End If
x= InputBox("Di quale valore (distanza, differenza o somma) vuoi cercare gli ambi?",,45)
'------------------------------------------VERIFICHE INPUTBOX
If tipo=1 And x<1 Or tipo=1 And x >45 Then
MsgBox("Per le distanze ciclometriche inserire un valore tra 1 e 45")
Exit Sub
End If
If tipo= 2 And x <1 Or tipo= 2 And x >89 Then
MsgBox("Per le differenze inserire un valore tra 1 e 89")
Exit Sub
End If
If tipo= 3 And x <1 Or tipo= 3 And x >90 Then
MsgBox("Per le somme inserire un valore tra 1 e 90")
Exit Sub
End If
'-------------------------------------------- ANALISI E RICERCA AMBI ORIZZONTALI
es=EstrazioneFin
x=CInt(x)
Cao=0 'Contatore ambi orizzontali
Redim Ambi_o(5,0) 'dimensiono la matrice ambi orizzontali
For r= 1 To 12
If r<> 11 Then
For p1=1 To 4
For p2=p1+1 To 5
ok=0
Select Case tipo
Case 1 : If Distanza(Estratto(es,r,p1),Estratto(es,r,p2)) = x Then ok=1
Case 2 : If Abs(Estratto(es,r,p1)-Estratto(es,r,p2))= x Then ok=1
Case 3 : If Fuori90(Estratto(es,r,p1)+Estratto(es,r,p2))= x Then ok=1
End Select
If ok=1 Then
CAo= cAo+1
Redim preserve Ambi_o(5,cao)
Ambi_o(1,cao)=r 'la 1^ riga contiene la ruota
Ambi_o(2,cao)=Estratto(es,r,p1)'la 3^ riga contiene il 1°num
Ambi_o(3,cao)=Estratto(es,r,p2)'la 5^ riga contiene il 2°num
Ambi_o(4,cao)=p1'la 2^ riga contiene la posizione del 1° num
Ambi_o(5,cao)=p2'la 4^ riga contiene la posizione del 2° num
End If
Next
Next
End If
Next
'--------------------------------------------------ANALISI E RICERCA AMBI VERTICALI DIAGONALI
Cavd=0 'Contatore ambi verticali e diagonali
Redim Ambi_vd(6,0) 'dimensiono la matrice ambi verticali e diagonali
For r1= 1 To 10
For p1=1 To 5
For r2=r1+1 To 12
If r2<> 11 Then
For q1= 1 To 5
okk=0
Select Case tipo
Case 1 :If Distanza(Estratto(es,r1,p1),Estratto(es,r2,q1)) = x Then okk=1
Case 2 : If Abs(Estratto(es,r1,p1)-Estratto(es,r2,q1))= x Then okk=1
Case 3 : If Fuori90(Estratto(es,r1,p1)+Estratto(es,r2,q1))= x Then okk=1
End Select
If okk=1 Then
CAvd= cAvd+1 'incremento contatore ambi verticali e diagonali
Redim preserve Ambi_vd(6,cavd)
Ambi_vd(1,cavd)=r1 'la 1^ riga contiene la 1^ruota
Ambi_vd(2,cavd)=Estratto(es,r1,p1)'la 3^ riga contiene il 1°num (1^ruota)
Ambi_vd(3,cavd)=r2 'la 4^ riga contiene la 2^ruota
Ambi_vd(4,cavd)=Estratto(es,r2,q1)'la 6^ riga contiene il 2°num (2^ruota)
Ambi_vd(5,cavd)=p1'la 2^ riga contiene la posizione del 1° num (1^ruota)
Ambi_vd(6,cavd)=q1'la 5^ riga contiene la posizione del 2° num (2^ruota)
End If
Next
End If
Next
Next
Next
'--------------------------------------------------------------- OUTPUT DEI RISULTATI
Scrivi
Scrivi Space(20)&" ESTRAZIONE DEL "& DataEstrazione(es)& " - AMBI CON: ",1
Scrivi Space(20)&" ",1,0
If TIPO=1 Then ColoreTesto 1:Scrivi " DISTANZA CICLOMETRICA ==> ",1,0: ColoreTesto 2:scrivi X&CHR(10),1
If TIPO=2 Then ColoreTesto 1:Scrivi " DIFFERENZA ARITMETICA ==> ",1,0: ColoreTesto 2:scrivi X&CHR(10),1
If TIPO=3 Then ColoreTesto 1:Scrivi " SOMMA ==> ",1,0: ColoreTesto 2:scrivi X&CHR(10),1
ColoreTesto 0
Scrivi String(78,"*")&chr(10)
If cao> 0 Then
Scrivi " Orizzontali (su ruota unica) ["& cao&"]",1
For i= 1 To cao
Scrivi Space(33)& SiglaRuota(Ambi_o(1,i)) & " "& Format2(Ambi_o(2,i))& " - "& Format2(Ambi_o(3,i)) &_
" ("&(Ambi_o(4,i))&"-"& (Ambi_o(5,i))&")"
Next
Else
Scrivi " Nessun ambo orizzontale (su ruota) corrisponde alla ricerca impostata "
End If
Scrivi
iso=0
If cavd>0 Then
For i= 1 To cavd
If (Ambi_vd(5,i) = Ambi_vd(6,i)) Then iso=iso+1
Next
If iso>1 Then
Scrivi " Verticali (su due ruote - isotopo) ["& iso&"]",1
For i= 1 To cavd
If (Ambi_vd(5,i)) = (Ambi_vd(6,i)) Then
Scrivi Space(39)& SiglaRuota(Ambi_vd(1,i)) & " "& Format2(Ambi_vd(2,i))& " - "& SiglaRuota(Ambi_vd(3,i)) &_
" "&Format2(Ambi_vd(4,i))& " ("&(Ambi_vd(5,i))&"-"& (Ambi_vd(6,i))&")"
End If
Next
Else
Scrivi " Nessun ambo verticale (su due ruote - isotopo) corrisponde alla ricerca impostata "&chr(10)
End If
If cavd-iso > 0 Then
Scrivi
Scrivi " Diagonali (su due ruote - non isotopo) ["& cavd-iso&"]",1
For i= 1 To cavd
If (Ambi_vd(5,i)) <> (Ambi_vd(6,i)) Then
Scrivi Space(45)& SiglaRuota(Ambi_vd(1,i)) & " "& Format2(Ambi_vd(2,i))& " - "& SiglaRuota(Ambi_vd(3,i)) &_
" "&Format2(Ambi_vd(4,i))& " ("&(Ambi_vd(5,i))&"-"& (Ambi_vd(6,i))&")"
End If
Next
End If
Else
Scrivi " Nessun ambo verticale e diagonale (su due ruote - isotopo e non) corrisponde alla ricerca impostata "
End If