Option Explicit
Sub Main()
Dim Es,Ini,Fin,R1,R2,R3,P1,P2,P3,P4,P5,P6
Dim A,B,C,D,K1,K2,Casi,Caso,E1,E2,Salvo50,Clp1,Clp2
Dim Num(5),Nu(5),R1R2(2),Ru1(1),Ru2(1),Ru3(1)
Dim Posta(1),Poste(3),Amba(1),Ter1(3),ter2(3)
Dim E3,P7,QuaR2(4),QuaR3(4),R123(3),TerR1(3)
Posta(1) = 1
Poste(2) = 1
'Poste(3) = 1
Fin = EstrazioneFin
Ini = InputBox("Inserisci l'estrazione che vuoi iniziare",Salvo50,9790)'ESEMPIO NELL'ARTICOLO 6487
Clp1 = InputBox("Per quanti colpi vuoi giocare l'ambata?",,3)
Clp2 = InputBox("Per quanti colpi vuoi giocare gli ambi?",,18)
Call ScegliRange(Ini,Fin,Ini,Fin)
Scrivi Space(10) & " Il Pentagono Armonico di Rosaria Falbo - Script Salvo50" & Space(10),1,,4,,3,,1
For Es = Ini To Fin: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)
If Distanza(A,B) = 18 Or Distanza(A,B) = 36 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(A <> C And B <> C And A <> D And B <> D) Then
If(Distanza(A,C) = 18 Or Distanza(A,C) = 36) And(Distanza(B,C) = 18 Or Distanza(B,C) = 36) _
And(Distanza(A,D) = 18 Or Distanza(A,D) = 36) And(Distanza(B,D) = 18 Or Distanza(B,D) = 36)Then '<<<<<
Num(1) = A
Nu(1) = A
For K1 = 2 To 5
Num(K1) = Fuori90(Num(K1 - 1) + 18)
Nu(K1) = Num(K1)
Next
For K2 = 1 To 5
If Num(K2) = A Or Num(K2) = B Or Num(K2) = C Or Num(K2) = D Then Num(K2) = 0
Next
OrdinaMatrice Nu,1
OrdinaMatrice Num,- 1
Caso = Caso + 1
Casi = Casi + 1
ColoreTesto 1
Scrivi String(89,"o") & " Casi Totali " & FormattaStringa(Casi,"0000")
ColoreTesto 2
Scrivi String(80,"o") & " 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 " Cinquina Pentagonale Completa ",1,0
Scrivi StringaNumeri(Nu," ",True),1,0,,1
Scrivi " Per La Cinquina Pentagonale Manca ",1,0
Scrivi Format2(Num(1)),1,,,2
Scrivi
R1R2(1) = R1 : R1R2(2) = R2 : Ru1(1) = R1 : Ru2(1) = R2
ImpostaGiocata 1,Num,R1R2,Posta,Clp1
Ter1(1) = Num(1) : Ter1(2) = C : Ter1(3) = D
ImpostaGiocata 2,Ter1,Ru1,Poste,Clp2
ter2(1) = Num(1) : ter2(2) = A : ter2(3) = B
ImpostaGiocata 3,ter2,Ru2,Poste,Clp2
Gioca Es,1,,1
End If
End If
Next
Next
Next
End If
Next
Next
If ScriptInterrotto Then Exit Sub
Next
For R1 = 1 To 12
If R1 = 11 Then R1 = 12
For P1 = 1 To 4
For P2 = P1 + 1 To 5
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
If Distanza(A,B) = 18 Or Distanza(A,B) = 36 Then
For R2 = 1 To 12
If R2 = 11 Then R2 = 12
If R1 <> R2 Then
For P3 = 1 To 4
For P4 = P3 + 1 To 5
C = Estratto(Es,R2,P3)
For R3 = 1 To 12
If R3 = 11 Then R3 = 12
If R3 <> R1 And R3 <> R2 Then
D = Estratto(Es,R3,P4)
If A <> C And B <> C And A <> D And B <> D And C <> D Then
If(Distanza(A,C) = 18 Or Distanza(A,C) = 36) And(Distanza(B,C) = 18 Or Distanza(B,C) = 36) _
And(Distanza(A,D) = 18 Or Distanza(A,D) = 36) And(Distanza(B,D) = 18 Or Distanza(B,D) = 36)Then '<<<<<
Num(1) = A
Nu(1) = A
For K1 = 2 To 5
Num(K1) = Fuori90(Num(K1 - 1) + 18)
Nu(K1) = Num(K1)
Next
For K2 = 1 To 5
If Num(K2) = A Or Num(K2) = B Or Num(K2) = C Or Num(K2) = D Then Num(K2) = 0
Next
OrdinaMatrice Nu,1
OrdinaMatrice Num,- 1
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"o") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,1
Scrivi String(80,"o") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,2
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 Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R3) & " ",1,0
For P7 = 1 To 5
E3 = Estratto(Es,R3,P7)
If E3 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E3) & " ",1,0
ColoreTesto 0
Next
Scrivi
Scrivi
Scrivi " Cinquina Pentagonale Completa ",1,0
Scrivi StringaNumeri(Nu," ",True),1,0,,1
Scrivi " Per La Cinquina Pentagonale Manca ",1,0
Scrivi Format2(Num(1)),1,,,2
Scrivi
R123(1) = R1 : R123(2) = R2 : R123(3) = R3
Ru1(1) = R1 : Ru2(1) = R2 : Ru3(1) = R3
ImpostaGiocata 1,Num,R123,Posta,Clp1
TerR1(1) = Num(1) : TerR1(2) = C : TerR1(3) = D
ImpostaGiocata 2,TerR1,Ru1,Poste,Clp2
QuaR2(1) = Num(1) : QuaR2(2) = A : QuaR2(3) = B : QuaR2(4) = D
ImpostaGiocata 3,QuaR2,Ru2,Poste,Clp2
QuaR3(1) = Num(1) : QuaR3(2) = A : QuaR3(3) = B : QuaR3(4) = C
ImpostaGiocata 4,QuaR3,Ru3,Poste,Clp2
Gioca Es,1
End If
End If
End If
Next
Next
Next
End If
Next
End If
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
ScriviResoconto
Scrivi "Tempo di Elaborazione " & TempoTrascorso,1,,,1,3
End Sub