Option Explicit
'Frattale ^6 x Micro_ V.2.0 By Joe del 06/11/2022
Sub Main
Dim N
Dim Es,G,R,P,Q,E,I,Nu(5,5),C,K,X,Y
Dim Ru(1),Co,Ris
N = 6 'Frattale x N <= 12
C = 3 'Colpi della verifica
For Es = EstrazioneFin - 20 To EstrazioneFin
For R = 1 To 1'2 : If R = 11 Then R = 12
Ru(1) = R
ReDim Colora(90)
Scrivi DataEstrazione(Es) & " " & NomeRuota(R) & " ",True
'Matrice Traslati
For P = 1 To 5
I = 0
E = Estratto(Es,R,P)
For Q = 1 To 5
If P <> Q Then
I = I + 1
Nu(P,I) = Fuori90(Fuori90(E^N -(Int(E^N/90) * 90)) + Estratto(Es,R,Q))
End If
Next
'Scrivi
Next
Scrivi
'Scompone le Righe della Matrice
Scrivi "Righe",True
For X = 1 To 5
ReDim TMP(4)
K = 0
For Y = 1 To 4
K = K + 1
TMP(K) = Nu(X,Y)
Next
Call TogliRipetuti(TMP)
Scrivi StringaNumeri(TMP,,True) & Space(16 - Len(StringaNumeri(TMP,,True))),0,0
Call VerificaEsito(TMP,Ru,Es + 1,AMBO_,C,,,Co,Ris)
If Ris <> "" Then Call Matrice(Colora,Ris,Co): Scrivi Co & "° Colpo " & Ris,1,,,Co - 1 Else Scrivi
Next
Scrivi
'Scompone le Colonne della Matrice
Scrivi "Colonne",True
For X = 1 To 4
ReDim TMP(5)
K = 0
For Y = 1 To 5
K = K + 1
TMP(K) = Nu(Y,X)
Next
Call TogliRipetuti(TMP)
Scrivi StringaNumeri(TMP,,True) & Space(16 - Len(StringaNumeri(TMP,,True))),0,0
Call VerificaEsito(TMP,Ru,Es + 1,AMBO_,C,,,Co,Ris)
If Ris <> "" Then Call Matrice(Colora,Ris,Co): Scrivi Co & "° Colpo " & Ris,1,,,Co - 1 Else Scrivi
Next
Scrivi
Scrivi "Cruciverba Ambi",True
ColoreTesto 0
For P = 1 To 5
I = 0
E = Estratto(Es,R,P)
ColoreTesto 5
For Q = 1 To 5
If P <> Q Then
I = I + 1
Nu(P,I) = Fuori90(Fuori90(E^N -(Int(E^N/90) * 90)) + Estratto(Es,R,Q))
If Colora(Nu(P,I)) > 0 Then G = 1 : ColoreTesto 0 '
Scrivi Format2(Nu(P,I)) & Space(1),G,0, RGB (200,200,200),Colora(Nu(P,I)) - 1
G = 0 : ColoreTesto 5
End If
Next
Scrivi
Next
Scrivi
ColoreTesto 0
Scrivi String(43,"=")
Next
Next
End Sub
Sub Matrice(Colora,Ris,Co)
Dim X,N
N = Split(Ris," ")
For X = 1 To UBound(N)
If N(X) <> ".." Then N(X) = Int(N(X)) : Colora(N(X)) = Co
Next
End Sub
Function TogliRipetuti(N)
Dim Nu(90)
Dim I,U,K
U = UBound(N)
ReDim tmp(0)
For I = 1 To U
If CInt(N(I)) <> CInt(Nu(N(I))) Then
K = K + 1
ReDim Preserve tmp(K)
tmp(K) = CInt(N(I))
Nu(N(I)) = CInt(N(I))
End If
Next
ReDim N(K)
For I = 1 To K
N(I) = tmp(I)
Next
TogliRipetuti = N
End Function