Aggiungi documentazione: requisiti, implementazione, lezioni apprese

This commit is contained in:
truetype committed 2026-09-24 14:55:53 +02:00
1 parent d1fd88b5ff
commit de45b6c3b0
6 files changed
+500 -210

No files matched your search

+62
View File
@@ -0,0 +1,62 @@
# 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.