🎯 Checkers
Dama Italiana e Internazionale con intelligenza artificiale
← Torna a Virtual Desktop Site
Descrizione
Checkers è un’implementazione completa del gioco della dama che supporta due varianti ufficiali: la Dama Italiana (8×8) e la Dama Internazionale (10×10). Sviluppato interamente in vanilla JavaScript con Canvas API, include un’AI avversaria basata su Minimax con Alpha-Beta pruning.
Varianti Supportate
🇮🇹 Dama Italiana (8×8)
La variante giocata in Italia con regole specifiche:
| Caratteristica | Regola |
|---|---|
| Scacchiera | 8×8 (32 caselle giocabili) |
| Pedine per giocatore | 12 |
| Movimento pedina | Solo avanti in diagonale |
| Cattura pedina | Solo avanti in diagonale |
| Pedina vs Dama | La pedina NON può catturare la dama |
| Movimento dama | Una casella in tutte le direzioni |
| Cattura obbligatoria | Sì |
| Priorità catture | Dama > Pedina, poi max pezzi |
🌍 Dama Internazionale (10×10)
La variante giocata nei tornei internazionali:
| Caratteristica | Regola |
|---|---|
| Scacchiera | 10×10 (50 caselle giocabili) |
| Pedine per giocatore | 20 |
| Movimento pedina | Solo avanti in diagonale |
| Cattura pedina | Avanti E indietro |
| Flying King | La dama si muove su tutta la diagonale |
| Promozione | Solo se il pezzo TERMINA sull’ultima riga |
| Cattura obbligatoria | Sì |
| Priorità catture | Massimo numero di pezzi |
Caratteristiche
Gameplay
- Click to move: seleziona pedina e clicca sulla destinazione
- Indicatori mosse valide: cerchi verdi per le mosse possibili
- Catture multiple: obbligatorie quando disponibili
- Promozione automatica: a dama raggiungendo l’ultima riga
- Corona dorata: le dame sono evidenziate con simbolo ♔
Intelligenza Artificiale
L’AI utilizza Minimax con Alpha-Beta pruning e una funzione di valutazione avanzata:
Livelli di Difficoltà
| Livello | Profondità | Descrizione | |———|————|————-| | Facile | 3 ply | Errori occasionali, ideale per principianti | | Medio | 5 ply | Gioco solido e bilanciato | | Difficile | 7 ply | AI competitiva e strategica |
Valutazione Posizione
- Valore pedina: 100 punti
- Valore dama: 300 punti
- Bonus avanzamento: +5 punti per riga avanzata
- Bonus centro: controllo caselle centrali
- Mobilità: valutazione mosse disponibili
Web Worker
Il calcolo AI viene eseguito in un thread separato per mantenere l’interfaccia reattiva:
// checkers-worker.js
self.onmessage = function(e) {
const ai = new CheckersAI(variant, difficulty);
const bestMove = ai.getBestMove(board, player);
self.postMessage({ move: bestMove });
};
Implementazione Tecnica
Struttura Dati
// Board: array 2D
// 0 = vuoto, 1 = pedina bianca, 2 = dama bianca
// 3 = pedina nera, 4 = dama nera
const PIECE = {
EMPTY: 0,
WHITE_MAN: 1,
WHITE_KING: 2,
BLACK_MAN: 3,
BLACK_KING: 4
};
Algoritmo Catture Multiple
handleCaptureSequence(move) {
// 1. Esegui cattura
this.executeMove(move);
// 2. Cerca altre catture dalla nuova posizione
const nextCaptures = this.getCapturesFromPosition(move.to);
if (nextCaptures.length > 0) {
// 3. Cattura multipla obbligatoria
this.mustContinueCapture = true;
this.validMoves = nextCaptures;
return false; // Turno non finito
}
// 4. Promozione e cambio turno
this.checkPromotion(move.to);
this.switchTurn();
return true;
}
File Principali
core/js/checkers.js: game engine completo (~1450 righe)core/js/checkers-worker.js: AI in Web Worker (~280 righe)core/styles/checkers.css: stili responsive (~300 righe)
Rendering Canvas
Il rendering usa Canvas 2D con:
- Gradiente radiale: effetto 3D sulle pedine
- Ombra portata: profondità visiva
- Animazioni smooth: transizioni fluide
Storia della Dama
Origini
- 3000 a.C.: Ur (Mesopotamia) - giochi simili su tavola
- 1100 d.C.: Alquerque - antenato diretto in Spagna
- 1500 d.C.: Regole moderne stabilite in Francia
Complessità
- Mosse possibili: ~500 trilioni di posizioni (10×10)
- Gioco risolto: La dama 8×8 è stata “risolta” nel 2007 (pareggio perfetto)
- AI: Chinook (1994) è stato il primo programma a vincere il campionato mondiale
Controlli
Desktop
- Click: seleziona/muovi pedine
- N: nuova partita
- Ctrl+Z: annulla mossa
Mobile
- Tap: seleziona/muovi pedine
- Pulsanti on-screen per controlli
Link Utili
Gioca a Checkers sul desktop virtuale aprendo l’icona 🎯 Checkers dal gruppo Mini Apps.