Acquafresca
Super Member >GOLD<
Se nella community c'è chi è interessato a testare questo piccolo programmino come sto facendo io e creato da me insieme all'AI sviluppato fatto con Python (probabilmente migliorabile ) ma impostato per intercettare gli ambi più probabili ,anche se da i primi test prende l'ambata su ruota fissa e ciò non è male. Cerco di allegare i file del piccolo programmino e se qualcuno se ne intente più di me e lo perfeziona ,ben venga. Buona Pasqua a tutti e fatene buon uso questo che allego è lo script da usare su Python,la procedura passo -passo è 1° creare una nuova cartella sul desktop
2° aprire Blocco Note ,andare su <crea nuova scheda> e inserire lo script
3° Salvare con nome (nome del nuovo file Ambi.py)
4°con la nuova cartella creata aperta evidenziare il nuovo file e andare su CMD,si apre la schermata del Dos, dopo di che creare il file EXE(Esecutivo) usando questo comando:
pyinstaller --onefile --console Ambi.py
5° procuratevi l'archivio estrazioni aggiornato come <estrazioni.csv> e una volta creato EXE inseritelo nella stessa cartella che è evidenziata (dist) dove effettivamente c'è il pulsante da lanciare il programma di analisi (Ambi)
Questo è lo script:
import os
import sys
import traceback
from itertools import combinations
def carica_dati():
nome_file = 'estrazioni.csv'
percorso = os.path.join(os.path.dirname(sys.executable), nome_file)
if not os.path.exists(percorso):
percorso = os.path.join(os.getcwd(), nome_file)
if not os.path.exists(percorso):
raise FileNotFoundError(f"File '{nome_file}' NON trovato!")
with open(percorso, 'r', encoding='latin1') as f:
return f.readlines()
def analizza():
righe = carica_dati()
ruote_nomi = ["Bari", "Cagliari", "Firenze", "Genova", "Milano", "Napoli", "Palermo", "Roma", "Torino", "Venezia", "Nazionale"]
dati_per_ruota = {nome: [] for nome in ruote_nomi}
print(f"Righe caricate: {len(righe)}")
for riga in righe[1:]:
if not riga.strip(): continue
elementi = riga.strip().split(',')
numeri_riga = []
for e in elementi:
try:
n = int(float(e))
if 1 <= n <= 90: numeri_riga.append
except: continue
if len(numeri_riga) >= 55:
for i, nome in enumerate(ruote_nomi):
dati_per_ruota[nome].append(set(numeri_riga[i*5 : (i*5)+5]))
for r in ruote_nomi: dati_per_ruota[r].reverse()
tutti_gli_ambi = list(combinations(range(1, 91), 2))
risultati = []
SOGLIA = 150
print(f"Scansione 4005 ambi su {len(dati_per_ruota['Bari'])} estrazioni...")
for ruota, estrazioni in dati_per_ruota.items():
# Correzione Calcolo Ritardatari Capolista
ritardi_singoli = []
for n in range(1, 91):
rit_n = next((idx for idx, c in enumerate(estrazioni) if n in c), len(estrazioni))
ritardi_singoli.append({'num': n, 'rit': rit_n})
# Prende i 10 numeri con il ritardo più alto
top_10_rit = [x['num'] for x in sorted(ritardi_singoli, key=lambda x: x['rit'], reverse=True)[:10]]
for a, b in tutti_gli_ambi:
ritardo = next((i for i, c in enumerate(estrazioni) if a in c and b in c), len(estrazioni))
if ritardo >= SOGLIA:
segnali = ""
if ritardo > 400: segnali += "
"
if a in top_10_rit or b in top_10_rit: segnali += "
"
f_a = sum(1 for c in estrazioni[:18] if a in c)
f_b = sum(1 for c in estrazioni[:18] if b in c)
if (f_a + f_b) >= 4: segnali += "
"
risultati.append({'ambo': f"{a:02d}-{b:02d}", 'ruota': ruota, 'rit': ritardo, 'sig': segnali})
# Ordinamento finale corretto
risultati.sort(key=lambda x: x['rit'], reverse=True)
print("\n" + "-"*55)
print(f"{'AMBO'.ljust(10)} | {'RUOTA'.ljust(12)} | {'RITARDO'.ljust(8)} | {'SEGNALI'}")
print("-" * 55)
for res in risultati[:40]:
print(f"{res['ambo'].ljust(10)} | {res['ruota'].ljust(12)} | {str(res['rit']).ljust(8)} | {res['sig']}")
if __name__ == "__main__":
try:
analizza()
except Exception as e:
print(f"\nERRORE: {e}")
traceback.print_exc()
finally:
print("\n" + "="*55)
input("PREMI INVIO PER CHIUDERE...")
2° aprire Blocco Note ,andare su <crea nuova scheda> e inserire lo script
3° Salvare con nome (nome del nuovo file Ambi.py)
4°con la nuova cartella creata aperta evidenziare il nuovo file e andare su CMD,si apre la schermata del Dos, dopo di che creare il file EXE(Esecutivo) usando questo comando:
pyinstaller --onefile --console Ambi.py
5° procuratevi l'archivio estrazioni aggiornato come <estrazioni.csv> e una volta creato EXE inseritelo nella stessa cartella che è evidenziata (dist) dove effettivamente c'è il pulsante da lanciare il programma di analisi (Ambi)
Questo è lo script:
import os
import sys
import traceback
from itertools import combinations
def carica_dati():
nome_file = 'estrazioni.csv'
percorso = os.path.join(os.path.dirname(sys.executable), nome_file)
if not os.path.exists(percorso):
percorso = os.path.join(os.getcwd(), nome_file)
if not os.path.exists(percorso):
raise FileNotFoundError(f"File '{nome_file}' NON trovato!")
with open(percorso, 'r', encoding='latin1') as f:
return f.readlines()
def analizza():
righe = carica_dati()
ruote_nomi = ["Bari", "Cagliari", "Firenze", "Genova", "Milano", "Napoli", "Palermo", "Roma", "Torino", "Venezia", "Nazionale"]
dati_per_ruota = {nome: [] for nome in ruote_nomi}
print(f"Righe caricate: {len(righe)}")
for riga in righe[1:]:
if not riga.strip(): continue
elementi = riga.strip().split(',')
numeri_riga = []
for e in elementi:
try:
n = int(float(e))
if 1 <= n <= 90: numeri_riga.append
except: continue
if len(numeri_riga) >= 55:
for i, nome in enumerate(ruote_nomi):
dati_per_ruota[nome].append(set(numeri_riga[i*5 : (i*5)+5]))
for r in ruote_nomi: dati_per_ruota[r].reverse()
tutti_gli_ambi = list(combinations(range(1, 91), 2))
risultati = []
SOGLIA = 150
print(f"Scansione 4005 ambi su {len(dati_per_ruota['Bari'])} estrazioni...")
for ruota, estrazioni in dati_per_ruota.items():
# Correzione Calcolo Ritardatari Capolista
ritardi_singoli = []
for n in range(1, 91):
rit_n = next((idx for idx, c in enumerate(estrazioni) if n in c), len(estrazioni))
ritardi_singoli.append({'num': n, 'rit': rit_n})
# Prende i 10 numeri con il ritardo più alto
top_10_rit = [x['num'] for x in sorted(ritardi_singoli, key=lambda x: x['rit'], reverse=True)[:10]]
for a, b in tutti_gli_ambi:
ritardo = next((i for i, c in enumerate(estrazioni) if a in c and b in c), len(estrazioni))
if ritardo >= SOGLIA:
segnali = ""
if ritardo > 400: segnali += "
if a in top_10_rit or b in top_10_rit: segnali += "
f_a = sum(1 for c in estrazioni[:18] if a in c)
f_b = sum(1 for c in estrazioni[:18] if b in c)
if (f_a + f_b) >= 4: segnali += "
risultati.append({'ambo': f"{a:02d}-{b:02d}", 'ruota': ruota, 'rit': ritardo, 'sig': segnali})
# Ordinamento finale corretto
risultati.sort(key=lambda x: x['rit'], reverse=True)
print("\n" + "-"*55)
print(f"{'AMBO'.ljust(10)} | {'RUOTA'.ljust(12)} | {'RITARDO'.ljust(8)} | {'SEGNALI'}")
print("-" * 55)
for res in risultati[:40]:
print(f"{res['ambo'].ljust(10)} | {res['ruota'].ljust(12)} | {str(res['rit']).ljust(8)} | {res['sig']}")
if __name__ == "__main__":
try:
analizza()
except Exception as e:
print(f"\nERRORE: {e}")
traceback.print_exc()
finally:
print("\n" + "="*55)
input("PREMI INVIO PER CHIUDERE...")
Ultima modifica:
