# Lezioni Apprese e Prossimi Passi ## Errori commessi 1. **Sovrainingegneria:** Ho creato troppe varianti di server e codice senza consolidare 2. **Mancanza di test incrementali:** Ogni riscrittura completa impediva di isolare i bug 3. **Assunzioni non verificate:** Ho assunto che frecce standard funzionassero, che Canvas rispondesse, che il loop JS non lanciasse eccezioni 4. **Debug "alla cieca":** Senza console del browser accessibile, non potevo vedere gli errori reali 5. **Nessuna architettura chiara:** Mescolare logica di rendering, input e stato in un unico file monolitico ha creato accoppiamento ## Cosa farebbe funzionare ### Approccio consigliato per il prossimo tentativo 1. **Iniziare con un prototipo HTML puro** - Menu come elementi HTML (non Canvas) - Nessun JavaScript per il menu - Solo click su pulsanti 2. **Separare rendering e logica** - Canvas SOLO per il gioco - HTML per menu e UI 3. **Testare ogni meccanica isolatamente** - Prima: solo movimento giocatore - Poi: solo disco che si muove - Poi: interazione disco-giocatore - Infine: IA e punteggio 4. **Aggiungere try-catch con visibilizzazione errori** ```javascript try { /* codice */ } catch(e) { X.fillStyle='red'; X.fillText('ERR:'+e.message,10,20); } ``` 5. **Gestire tastiera in modo difensivo** ```javascript var up = ['ArrowUp','KeyW','KeyI']; var dn = ['ArrowDown','KeyS','KeyK']; // Testare effettivamente quali codici arrivano ``` ## Suggerimento alternativo Considerare l'uso di **pygame** (Python) invece di JavaScript/Canvas: - Più semplice da debuggare - Game loop più robusto - Input gestito via eventi pygame - Sarebbe necessario un server che serva un canvas via WebSocket o un'applicazione desktop ## Riferimenti utili - [Windjammers Wiki](https://windjammers.fandom.com/wiki/Windjammers) - [Fandom Wiki (regole dettagliate)](https://snk.fandom.com/wiki/Windjammers) - [Gitea MCP](https://gitea.com/gitea/gitea-mcp) — server MCP per integrazione Gitea - [opencode-review-gitea](https://github.com/ccsert/opencode-review-gitea) — skill per review PR su Gitea - [Kitbitz MCP](https://kitbitz.art/docs/mcp) — endpoint MCP per asset grafici CC0 ## Stato del repository Gitea La repository `truetype/giteo` è stata creata su http://192.168.0.183:8085 ma contiene il codice non funzionante.