<h3>Archivio Estrazioni</h3>
<label>Inserisci i numeri dell'estrazione (6 numeri):</label>
<div class="input-estrazione"><input id="estrazione1"
 type="text"><input id="estrazione2" type="text"><input
 id="estrazione3" type="text"><input
 id="estrazione4" type="text"><input
 id="estrazione5" type="text"><input
 id="estrazione6" type="text"></div>
<button onclick="aggiungiEstrazione()">Aggiungi Estrazione</button>
<button onclick="resettaArchivio()">Svuota Archivio</button>
<button onclick="caricaPredefinite()">Carica 15 Estrazioni
Predefinite</button>
<button onclick="salvaArchivio()">Salva Archivio</button>
<button onclick="openChat()">Chat GPT Demo</button>
<script>
let chatWindow;
function openChat() {
// URL della chat demo Hugging Face (esempio)
const url = 'https://huggingface.co/spaces/yuntian-deng/ChatGPT';
// Apri popup con dimensioni modeste, senza barre browser
chatWindow = window.open(url, 'chatGPTDemo', 'width=600,height=700');
// Dopo 10 minuti (600000 ms) chiudi la finestra automaticamente
setTimeout(() => {
if (chatWindow && !chatWindow.closed) {
chatWindow.close();
alert("La sessione di chat è terminata. Torna al programma principale.");
}
}, 600000); // 600000 ms = 10 minuti
}
</script>
<h4>Ultime Estrazioni</h4>
<div id="estrazioniVisualizzate"></div>
</div>
<div>
<label>Inserisci i numeri dell'estrazione personale (6 numeri):</label>
<div class="input-estrazione"><input
 id="estrazione_personale1" type="text"><input
 id="estrazione_personale2" type="text"><input
 id="estrazione_personale3" type="text"><input
 id="estrazione_personale4" type="text"><input
 id="estrazione_personale5" type="text"><input
 id="estrazione_personale6" type="text"></div>
<button onclick="aggiungiEstrazionePersonale()">Aggiungi
Estrazione Personale</button>
<button onclick="resettaEstrazioniPersonali()">Resetta
Estrazioni Personali</button>
</div>
<label for="numBollette">Numero di bollette da giocare
(1-20):</label>
<input id="numBollette" min="1" max="20"
 type="number"><label for="numeriColonna">Numero
di numeri per colonna:</label>
<select id="numeriColonna">
<option value="6" selected="selected">6 numeri</option>
</select>
<button onclick="generaBolletta()">Genera Bollette</button>
<button onclick="mostraNumeriFrequenti()">Numeri
frequenti verde eliminati dalla generazione rosso</button><button
 onclick="mostraNumeriInGioco()">Numeri in gioco</button>
<div class="output" id="output"></div>
<div id="frequenza" class="frequenza">Nessun numero
frequente trovato.</div>
<div id="numeriInGioco" class="frequenza">Nessun
numero in gioco trovato.</div>
<script>function mostraNumeriFrequenti() {
let numeriFrequenza = {};
archivioEstrazioni.forEach(estrazione => {
estrazione.forEach(numero => {
numeriFrequenza[numero] = (numeriFrequenza[numero] || 0) + 1;
});
});
// Ordina per frequenza decrescente e prendi i primi 20
let numeriOrdinati = Object.entries(numeriFrequenza)
.sort((a, b) => b[1] - a[1])
.slice(0, 20);
let frequenzaDiv = document.getElementById('frequenza');
if (numeriOrdinati.length === 0) {
frequenzaDiv.innerHTML = "Nessun numero frequente trovato.";
} else {
frequenzaDiv.innerHTML = "<strong>Numeri più frequenti:</strong><br>";
numeriOrdinati.forEach(([numero, frequenza]) => {
let colore = 'black';
if (frequenza === 2) colore = 'green';
else if (frequenza > 2) colore = 'red';
frequenzaDiv.innerHTML += `Numero <strong style="color:${colore}">${numero}</strong>: ${frequenza} volte<br>`;
});
}
}
function mostraNumeriInGioco() {
let numeriArchivio = archivioEstrazioni.flat();
let numeriPersonali = estrazioniPersonali.flat();
let tuttiNumeri = [...numeriArchivio, ...numeriPersonali];
// Frequenze numeri solo in archivio
let frequenzeArchivio = {};
numeriArchivio.forEach(n => {
frequenzeArchivio[n] = (frequenzeArchivio[n] || 0) + 1;
});
let numeriUnici = [...new Set(tuttiNumeri)].sort((a, b) => a - b);
let numeriInGiocoDiv = document.getElementById('numeriInGioco');
if (numeriUnici.length === 0) {
numeriInGiocoDiv.innerHTML = 'Nessun numero in gioco trovato.';
} else {
numeriInGiocoDiv.innerHTML = `<strong>Numeri in gioco:</strong> `;
let listaColorata = numeriUnici.map(n => {
let freq = frequenzeArchivio[n] || 0;
let colore = 'blue'; // default in gioco
if (freq > 2) {
colore = 'red'; // eliminato
} else if (freq === 2) {
colore = 'green'; // frequente 2 volte
}
return `<span style="color:${colore}; font-weight:bold;">${n}</span>`;
});
numeriInGiocoDiv.innerHTML += listaColorata.join(', ');
}
}
</script>
<h3>Inserisci i 6 numeri estratti:</h3>
<div class="input-estrazione">
<input id="numero1" maxlength="2" type="text"><input
 id="numero2" maxlength="2" type="text"><input
 id="numero3" maxlength="2" type="text"><input
 id="numero4" maxlength="2" type="text"><input
 id="numero5" maxlength="2" type="text"><input
 id="numero6" maxlength="2" type="text"></div>
<button onclick="verificaVincita()">Verifica</button>
<button class="red-button" onclick="clearFields()">Pulisci</button>
<button onclick="salvaGenerazioneConNome()">Salva
generazione con nome</button> <button onclick="printBets()">Stampa
Bollette</button>
</div>
<div class="verifica">
<h3>Carica una generazione salvata:</h3>
<input id="caricaNome" placeholder="Nome" type="text">
<button onclick="caricaGenerazioneConNome()">Carica per
nome</button>
</div>
<div class="risultato" id="risultato"
 style="display: none;"></div>
<script>let archivioEstrazioni = JSON.parse(localStorage.getItem('archivioEstrazioni')) || [];
let estrazioniPersonali = JSON.parse(localStorage.getItem('estrazioniPersonali')) || [];
let bolletteGenerate = JSON.parse(localStorage.getItem('bolletteGenerate')) || [];
// Estrazioni predefinite da poter ricaricare
const estrazioniPredefinite = [
[1, 5, 17, 23, 45, 66],
[4, 16, 29, 34, 55, 78],
[6, 18, 20, 40, 63, 88],
[3, 12, 25, 31, 50, 72],
[9, 15, 22, 47, 60, 84],
[2, 11, 26, 35, 53, 80],
[7, 13, 21, 38, 51, 77],
[8, 10, 19, 27, 58, 89],
[14, 24, 33, 49, 57, 73],
[5, 28, 32, 39, 56, 85],
[6, 17, 30, 36, 62, 82],
[1, 11, 22, 43, 59, 79],
[9, 13, 27, 44, 61, 70],
[12, 18, 34, 52, 64, 86],
[15, 19, 41, 54, 67, 87]
];
function resettaArchivio() {
archivioEstrazioni = [];
salvaArchivio();
aggiornaArchivio();
alert("Archivio svuotato.");
}
function caricaPredefinite() {
archivioEstrazioni = [...estrazioniPredefinite]; // Copia le predefinite
salvaArchivio();
aggiornaArchivio();
alert("15 estrazioni predefinite ricaricate.");
}
function salvaArchivio() {
localStorage.setItem('archivioEstrazioni', JSON.stringify(archivioEstrazioni));
localStorage.setItem('estrazioniPersonali', JSON.stringify(estrazioniPersonali));
localStorage.setItem('bolletteGenerate', JSON.stringify(bolletteGenerate));
}
function aggiornaArchivio() {
const estrazioniDiv = document.getElementById('estrazioniVisualizzate');
estrazioniDiv.innerHTML = '';
const tutte = [...archivioEstrazioni, ...estrazioniPersonali];
tutte.forEach((estrazione, index) => {
const div = document.createElement('div');
div.className = 'estrazione-line';
div.innerHTML = `Estrazione ${index + 1}: ${estrazione.join(' ')} <button onclick="modificaEstrazione(${index})">Modifica</button><button onclick="rimuoviEstrazione(${index})">Elimina</button>`;
estrazioniDiv.appendChild(div);
});
}
function rimuoviEstrazione(index) {
if (index < archivioEstrazioni.length) {
archivioEstrazioni.splice(index, 1);
} else {
estrazioniPersonali.splice(index - archivioEstrazioni.length, 1);
}
salvaArchivio();
aggiornaArchivio();
}
function modificaEstrazione(index) {
const estrazione = prompt("Modifica i numeri separati da uno spazio:", [...archivioEstrazioni, ...estrazioniPersonali][index].join(' '));
if (estrazione) {
const numeri = estrazione.split(' ').map(n => n.trim());
if (numeri.length === 6 && numeri.every(n => !isNaN(n) && n >= 1 && n <= 90)) {
if (index < archivioEstrazioni.length) {
archivioEstrazioni[index] = numeri;
} else {
estrazioniPersonali[index - archivioEstrazioni.length] = numeri;
}
salvaArchivio();
aggiornaArchivio();
} else {
alert("Inserisci 6 numeri validi.");
}
}
}
function aggiungiEstrazione() {
const estrazione = [
estrazione1.value, estrazione2.value, estrazione3.value,
estrazione4.value, estrazione5.value, estrazione6.value
];
if (estrazione.includes('')) return alert("Inserisci tutti i numeri.");
if (archivioEstrazioni.length >= 7) archivioEstrazioni.shift();
archivioEstrazioni.push(estrazione);
salvaArchivio();
aggiornaArchivio();
for (let i = 1; i <= 6; i++) document.getElementById(`estrazione${i}`).value = '';
}
function aggiungiEstrazionePersonale() {
if (estrazioniPersonali.length >= 3) return alert("Massimo 3 estrazioni personali.");
const e = [
estrazione_personale1.value, estrazione_personale2.value, estrazione_personale3.value,
estrazione_personale4.value, estrazione_personale5.value, estrazione_personale6.value
];
if (e.includes('')) return alert("Inserisci tutti i numeri.");
estrazioniPersonali.push(e);
salvaArchivio();
aggiornaArchivio();
for (let i = 1; i <= 6; i++) document.getElementById(`estrazione_personale${i}`).value = '';
}
function resettaEstrazioniPersonali() {
estrazioniPersonali = [];
salvaArchivio();
aggiornaArchivio();
}
non salva le estrazioni se premo 15 estrazioni predefinite visualizza sempre le solite 15 anche aggiungendone altre