๐ŸŽฏ I Tuoi Obiettivi

  • โœ… Crea variabili per punti, livello, vite, e record
  • โœ… "Raccogli Moneta" aggiunge 10 punti
  • โœ… "Raccogli Gemma" aggiunge 50 punti
  • โœ… "Perdi Vita" toglie 1 vita (non puรฒ andare sotto 0)
  • โœ… Ogni 100 punti aumenta il livello
  • โœ… Traccia il punteggio record massimo
  • โœ… "Reset" riporta tutto ai valori iniziali (tranne il record)
๐Ÿ’ฐ
Punti
0
โญ
Livello
1
โค๏ธ
Vite
3
๐Ÿ†
Record
0

๐ŸŽฏ Azioni di Gioco

๐Ÿ“œ Log Eventi

๐ŸŽฎ Gioco iniziato! Buona fortuna!

๐Ÿ“ Istruzioni Dettagliate

๐ŸŽฏ Passo 1: Crea le Variabili Iniziali

All'inizio del file, dichiara tutte le variabili di gioco:

let punti = 0;       // Punti correnti
let livello = 1;     // Livello corrente
let vite = 3;        // Vite rimanenti
let record = 0;      // Punteggio record (massimo raggiunto)

๐ŸŽฏ Passo 2: Seleziona Tutti gli Elementi

Seleziona i 4 display e i 4 bottoni:

  • Display: #displayPunti, #displayLivello, #displayVite, #displayRecord
  • Bottoni: #btnMoneta, #btnGemma, #btnDanno, #btnReset

๐ŸŽฏ Passo 3: Crea la Funzione aggiornaDisplay()

Questa funzione aggiorna TUTTI i display quando chiamata:

function aggiornaDisplay() {
    displayPunti.textContent = punti;
    displayLivello.textContent = livello;
    displayVite.textContent = vite;
    displayRecord.textContent = record;
}

๐Ÿ’ก Importante: Chiama questa funzione dopo OGNI modifica!

๐ŸŽฏ Passo 4: Bottone "Raccogli Moneta"

Quando clicchi:

  1. Aumenta punti di 10
  2. Calcola il livello: livello = Math.floor(punti / 100) + 1;
  3. Se punti > record, aggiorna il record
  4. Chiama aggiornaDisplay()
  5. (Opzionale) Aggiungi messaggio al log

๐ŸŽฏ Passo 5: Bottone "Raccogli Gemma"

Uguale alla moneta, ma aggiunge 50 punti invece di 10

๐ŸŽฏ Passo 6: Bottone "Prendi Danno"

Quando clicchi:

  1. Diminuisci vite di 1
  2. IMPORTANTE: Controlla che non vada sotto 0:
    if (vite < 0) {
        vite = 0;
    }
  3. Se vite === 0, mostra "Game Over!"
  4. Chiama aggiornaDisplay()

๐ŸŽฏ Passo 7: Bottone "Reset"

Riporta tutto ai valori iniziali:

punti = 0;
livello = 1;
vite = 3;
// NON resettare il record!
aggiornaDisplay();

๐Ÿ’ก Concetti Chiave

๐ŸŽฏ Gestire Variabili Multiple

In un gioco, hai tante variabili che cambiano insieme:

let punti = 0;    // Aumenta con azioni
let livello = 1;  // Calcolato dai punti
let vite = 3;     // Diminuisce con danni
let record = 0;   // Si aggiorna solo se punti > record

Ogni variabile ha un ruolo specifico!

๐Ÿ”„ Funzione di Aggiornamento Centrale

Invece di aggiornare ogni display manualmente, crea UNA funzione:

function aggiornaDisplay() {
    displayPunti.textContent = punti;
    displayLivello.textContent = livello;
    displayVite.textContent = vite;
    displayRecord.textContent = record;
}

// Poi chiamala dopo ogni modifica
punti += 10;
aggiornaDisplay();  // Aggiorna tutto!

๐Ÿงฎ Calcolo del Livello

Il livello aumenta ogni 100 punti:

// Math.floor arrotonda per difetto
livello = Math.floor(punti / 100) + 1;

// Esempi:
// 0-99 punti โ†’ livello 1
// 100-199 punti โ†’ livello 2
// 200-299 punti โ†’ livello 3

๐Ÿ›ก๏ธ Limitare i Valori

Le vite non possono andare sotto 0:

vite--;  // Diminuisci

// Controlla il limite
if (vite < 0) {
    vite = 0;  // Blocca a 0
}

๐Ÿ† Tracciare il Record

Il record si aggiorna solo se superi il massimo:

if (punti > record) {
    record = punti;  // Nuovo record!
}

Il record NON viene resettato quando resetti la partita!

๐Ÿ“œ Aggiungere Messaggi al Log (BONUS)

Per rendere il gioco piรน vivo:

function aggiungiLog(messaggio) {
    const log = document.getElementById('logContent');
    const p = document.createElement('p');
    p.className = 'log-message';
    p.textContent = messaggio;
    log.appendChild(p);
    
    // Scroll automatico in basso
    log.scrollTop = log.scrollHeight;
}

๐Ÿš€ Challenge Bonus (Opzionale)

Hai completato l'esercizio? Rendi il gioco piรน complesso:

  • ๐Ÿ’Š Bottone "Vita Extra" che aggiunge 1 vita (costa 50 punti)
  • ๐ŸŽฐ Bottone "Lotteria" che dร  punti casuali tra 0 e 100
  • โšก Moltiplicatore: ogni livello moltiplica i punti guadagnati (livello 2 = x2, livello 3 = x3)
  • ๐ŸŽฏ Obiettivo: mostra "HAI VINTO!" quando raggiungi 500 punti
  • ๐Ÿ’€ Game Over: quando le vite finiscono, disabilita tutti i bottoni tranne Reset
  • ๐ŸŽจ Cambia colore delle card in base ai valori (vite basse = rosso, livello alto = oro)
  • โฑ๏ธ Timer: aggiungi un countdown di 60 secondi
  • ๐Ÿ’พ LocalStorage: salva il record anche dopo aver chiuso la pagina