Sub Main()è possibile aggiungere anche la ruota TUTTE
grazie
Dim r, p, es, numero
Dim fine, inizio, colpi
Dim presenze(90)
Dim ultimaUscita(90)
Dim elencoNumeri, elencoEvidenziati, elencoRipetuti
Dim contatoreUnici, contatoreEvidenziati
colpi = 18
fine = EstrazioneFin
inizio = (fine - colpi) + 1
' Intestazione Generale dello Script
Scrivi String(75, "="), 1
Scrivi "ANALISI DI TUTTE LE RUOTE SINGOLE - ULTIME " & colpi & " ESTRAZIONI", 1
Scrivi "Intervallo analizzato: da n. " & inizio & " (" & DataEstrazione(inizio) & ") a n. " & fine & " (" & DataEstrazione(fine) & ")", 1
Scrivi String(75, "="), 1
Scrivi ""
' Ciclo su tutte le ruote (da 1 a 10 per le classiche, 12 per la Nazionale)
For r = 1 To 12
'If r <> 11 Then ' Salta la ruota "Tutte"
Scrivi String(60, "-")
ColoreTesto 1 ' Blu per il nome della ruota
Scrivi "RUOTA DI: " & NomeRuota(r), 1
ColoreTesto 0
Scrivi String(60, "-")
' Inizializzazione degli array per la ruota corrente
For numero = 1 To 90
presenze(numero) = 0
ultimaUscita(numero) = 0
Next
' Lettura delle estrazioni per la ruota corrente
For es = inizio To fine
For p = 1 To 5
Dim estrattoCorrente
estrattoCorrente = Estratto(es, r, p)
If estrattoCorrente > 0 And estrattoCorrente <= 90 Then
presenze(estrattoCorrente) = presenze(estrattoCorrente) + 1
ultimaUscita(estrattoCorrente) = es
End If
Next
Next
' Analisi dei numeri e verifica del filtro sul ritardo (6-15) - ORDINATI PER RITARDO DECRESCENTE
elencoNumeri = ""
elencoEvidenziati = ""
contatoreUnici = 0
contatoreEvidenziati = 0
' Ciclo a ritroso sui possibili ritardi (da colpi a 0) per garantire l'ordine decrescente
Dim ritardoCorrente, ritardo
For ritardoCorrente = colpi To 0 Step -1
For numero = 1 To 90
If presenze(numero) = 1 Then
ritardo = fine - ultimaUscita(numero)
' Se il ritardo del numero coincide con il ritardo corrente del ciclo
If ritardo = ritardoCorrente Then
If ritardoCorrente = fine - ultimaUscita(numero) Then ' Controllo di sicurezza
' Conteggio globale dei non ripetuti
If ritardoCorrente = ritardo Then
' (Il contatore aumenta una sola volta per numero trovato)
End If
End If
' Incrementiamo il contatore dei numeri unici totali alla prima intercettazione
' Nota: dato che verifichiamo ritardo = ritardoCorrente, ogni numero entra qui una sola volta
contatoreUnici = contatoreUnici + 1
' Filtro Ritardo Minimo 6 e Massimo 15
If ritardo >= 6 And ritardo <= 15 Then
elencoEvidenziati = elencoEvidenziati & numero & " (R:" & ritardo & ") "
contatoreEvidenziati = contatoreEvidenziati + 1
Else
elencoNumeri = elencoNumeri & numero & " (R:" & ritardo & ") "
End If
End If
End If
Next
Next
' Ricerca dei numeri più ripetuti (presenze >= 2), ordinati per frequenza decrescente
elencoRipetuti = ""
Dim f, contatoreRipetuti
contatoreRipetuti = 0
' Ciclo a ritroso sulle frequenze (da 5 uscite massime teorete a scendere fino a 2)
For f = 5 To 2 Step -1
For numero = 1 To 90
If presenze(numero) = f Then
elencoRipetuti = elencoRipetuti & numero & " (Pres:" & f & ") "
contatoreRipetuti = contatoreRipetuti + 1
End If
Next
Next
' --- STAMPA OUTPUT ---
' 1. Sezione numeri usciti 1 sola volta
Scrivi "Totale numeri usciti UNA SOLA VOLTA: " & contatoreUnici
If contatoreEvidenziati > 0 Then
ColoreTesto 2 ' Rosso per evidenziare i numeri target
Scrivi "NUMERI TARGET (Ritardo 6-15) [Ord. Ritardo Decrescente]: " & elencoEvidenziati, 1
ColoreTesto 0
Else
Scrivi "Nessun numero target (Ritardo 6-15) trovato."
End If
If elencoNumeri <> "" Then
Scrivi "Altri non ripetuti (fuori dal range di ritardo) [Ord. Ritardo Decrescente]: " & elencoNumeri
End If
' 2. Sezione numeri più ripetuti (almeno 2 uscite)
Scrivi ""
If contatoreRipetuti > 0 Then
ColoreTesto 9 ' Verde scuro/Ciano per i numeri più frequenti
Scrivi "NUMERI PIÙ RIPETUTI (Almeno 2 uscite nelle 18 estr.):", 1
ColoreTesto 0
Scrivi elencoRipetuti
Else
Scrivi "Nessun numero ripetuto (caso estremamente raro)."
End If
Scrivi "" ' Riga vuota di spaziatura tra le ruote
Next
Scrivi String(75, "="), 1
End Sub