6.4 KiB
CatDoku - Puzzle dei Gatti
📖 Descrizione
CatDoku è un puzzle game ispirato al classico Sudoku, ma con una meccanica unica basata sul posizionamento di gatti su una griglia colorata. Il gioco combina logica, strategia e divertimento in un'esperienza web moderna e responsive.
🎯 Obiettivo del Gioco
Posizionare un gatto in ogni riga, colonna e regione colorata della griglia, rispettando il vincolo che nessun gatto può essere adiacente (in qualsiasi direzione, incluse le diagonali) ad un altro gatto.
✨ Caratteristiche Principali
🎮 Gameplay
- Griglie dinamiche: Supporto per griglie da 6×6 fino a 12×12
- Generazione procedurale: Ogni partita genera un puzzle unico e sempre risolvibile
- Regioni colorate contigue: I colori formano aree connesse per una migliore esperienza visiva
- Sistema di errori: 3 tentativi massimi per livello con feedback visivo immediato
- Suggerimenti: 3 hint gratuiti per livello con sistema premium per suggerimenti aggiuntivi
Interfaccia
- Design moderno: UI pulita e intuitiva con animazioni fluide
- Responsive: Giocabile su desktop, tablet e mobile
- Interazione touch: Supporto completo per dispositivi touch
- Click singolo: posiziona/rimuove X
- Pressione prolungata (0.5s): posiziona/rimuove gatto
- Feedback visivo: Animazioni per errori, posizionamenti e vittorie
Sistema Player
- Alias personalizzati: Ogni giocatore può inserire il proprio nome/alias
- Tracking tempo: Timer per ogni livello con formato mm:ss
- Salvataggio locale: Progressi salvati in localStorage
- Classifica: Leaderboard completa con filtri e statistiche
🏆 Leaderboard
- Statistiche globali: Partite giocate, giocatori unici, miglior tempo, miglior punteggio
- Filtri avanzati: Per giocatore, livello e dimensione griglia
- Medaglie: Prime 3 posizioni con medaglie d'oro, argento e bronzo
- Cronologia: Data e ora di ogni partita completata
💎 Sistema Premium
- Popup premium: Attivato quando si esauriscono i suggerimenti
- Countdown: 5 secondi di attesa prima di poter ottenere un hint aggiuntivo
- Design accattivante: UI dorata con animazioni
🚀 Installazione e Avvio
Requisiti
- Browser moderno con supporto JavaScript ES6+
- Nessun server richiesto (funziona con file:// protocol)
Avvio Rapido
-
Clona il repository:
git clone http://192.168.0.183:8085/truetype/catdoku.git cd catdoku -
Apri il gioco:
# Metodo 1: Apri direttamente nel browser open index.html # Metodo 2: Usa un server HTTP locale (opzionale) python3 -m http.server 8000 # Poi visita http://localhost:8000 -
Inizia a giocare:
- Inserisci il tuo nome/alias
- Seleziona la dimensione della griglia (6×6 fino a 12×12)
- Clicca "Nuova Partita"
🎮 Come Giocare
Controlli
| Azione | Mouse | Touch |
|---|---|---|
| Posiziona/Rimuovi X | Click singolo | Tap singolo |
| Posiziona/Rimuovi Gatto | Pressione 0.5s | Pressione 0.5s |
| Cancella tutte le X | Pulsante gomma | Pulsante gomma |
| Suggerimento | Pulsante lampadina | Pulsante lampadina |
Regole del Gioco
- Un gatto per riga: Ogni riga deve contenere esattamente un gatto
- Un gatto per colonna: Ogni colonna deve contenere esattamente un gatto
- Un gatto per colore: Ogni regione colorata deve contenere esattamente un gatto
- Nessuna adiacenza: I gatti non possono essere adiacenti (incluse diagonali)
Sistema di Punteggio
Il punteggio viene calcolato in base a:
- Errori rimanenti: 10 punti per ogni errore non commesso
- Suggerimenti rimanenti: 5 punti per ogni hint non utilizzato
- Tempo: Non influisce sul punteggio ma viene tracciato per la leaderboard
🛠️ Sviluppo
Struttura del Progetto
catdoku/
├── index.html # Pagina principale del gioco
├── style.css # Stili e layout responsive
── game.js # Logica di gioco e generatore di puzzle
├── leaderboard.html # Pagina classifica
├── README.md # Documentazione principale
└── docs/ # Documentazione tecnica
├── architecture.md # Architettura del sistema
├── game-rules.md # Regole del gioco dettagliate
├── generator.md # Algoritmo di generazione puzzle
└── api.md # API e struttura dati
Tecnologie Utilizzate
- HTML5: Struttura semantica
- CSS3: Stili moderni con Grid, Flexbox, animazioni
- JavaScript ES6+: Logica di gioco, generatore procedurale
- localStorage API: Persistenza dati locale
Architettura
Il progetto segue un'architettura MVC semplificata:
- Model: Stato del gioco (griglia, soluzione, punteggio, timer)
- View: Rendering DOM e gestione eventi UI
- Controller: Logica di gioco, validazione, generazione puzzle
Generatore di Puzzle
Il generatore utilizza un algoritmo in 3 fasi:
- Backtracking randomizzato: Posiziona N gatti validi sulla griglia
- Flood fill simultaneo: Espande regioni colorate contigue da ogni gatto
- Validazione: Garantisce puzzle sempre risolvibile con soluzione unica
📊 Roadmap Futura
- Livelli predefiniti con difficoltà crescente
- Sistema di achievement/badge
- Modalità sfida a tempo
- Condivisione punteggi sui social
- Tema scuro
- Suoni ed effetti audio
- Multiplayer locale (2 giocatori)
- Esportazione/importazione record
🤝 Contribuire
Le contribuzioni sono benvenute! Per contribuire:
- Fork il progetto
- Crea un branch per la tua feature (
git checkout -b feature/AmazingFeature) - Commit le tue modifiche (
git commit -m 'Add some AmazingFeature') - Push sul branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
License
Questo progetto è distribuito sotto licenza MIT. Vedi il file LICENSE per maggiori informazioni.
👤 Autore
truetype
- Server Gitea: http://192.168.0.183:8085
- Repository: http://192.168.0.183:8085/truetype/catdoku
🙏 Ringraziamenti
- Ispirato al gioco "Clash of Critters"
- Icone e emoji standard Unicode
- Font di sistema per massima compatibilità
Buon divertimento con CatDoku! 🐱