# CatDoku - Puzzle dei Gatti ![CatDoku](https://img.shields.io/badge/version-1.0.0-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Platform](https://img.shields.io/badge/platform-Web-orange) ## ๐Ÿ“– 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 1. **Clona il repository**: ```bash git clone http://192.168.0.183:8085/truetype/catdoku.git cd catdoku ``` 2. **Apri il gioco**: ```bash # 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 ``` 3. **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 1. **Un gatto per riga**: Ogni riga deve contenere esattamente un gatto 2. **Un gatto per colonna**: Ogni colonna deve contenere esattamente un gatto 3. **Un gatto per colore**: Ogni regione colorata deve contenere esattamente un gatto 4. **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: 1. **Backtracking randomizzato**: Posiziona N gatti validi sulla griglia 2. **Flood fill simultaneo**: Espande regioni colorate contigue da ogni gatto 3. **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: 1. Fork il progetto 2. Crea un branch per la tua feature (`git checkout -b feature/AmazingFeature`) 3. Commit le tue modifiche (`git commit -m 'Add some AmazingFeature'`) 4. Push sul branch (`git push origin feature/AmazingFeature`) 5. 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! ๐Ÿฑ**