Playground · Chess
Conoscevo appena JavaScript. Gli scacchi sembravano un ottimo punto di partenza.
Uno dei miei primi esperimenti: una scacchiera giocabile in locale e online, con regole e movimenti scritti manualmente in JavaScript.

01 · Prima del motore
Nessun framework. Nessun motore. Solo le regole, una alla volta.
Avevo iniziato a programmare da poco e volevo ricreare un gioco che mi piaceva. La scacchiera è diventata il posto in cui capire davvero eventi, stato, condizioni e conseguenze.
- La scacchiera
- Griglia e pezzi vengono costruiti e identificati direttamente nel browser.
- Il turno
- Mossa, stato, selezione e cambio del giocatore devono restare coerenti.
- Tutto il resto
- Movimenti, catture, scacco, promozione e vittoria: nessuna libreria esterna.
02 · La logica
Ogni pezzo conosce le proprie mosse. Perché gliele ho spiegate tutte io.
Il codice decide gli spostamenti possibili in base a tipo, colore, posizione e occupazione delle caselle. Il rosso segnala la cattura disponibile; un click completa la mossa e passa il turno.

- 01
Seleziona il pezzo e recupera posizione, tipo e colore.
- 02
Calcola le caselle raggiungibili e gli ostacoli sul percorso.
- 03
Distingue un movimento da una cattura.
- 04
Aggiorna la scacchiera e consegna il turno all’avversario.
03 · Complessità quasi dimenticate
Nel codice ho ritrovato anche quelle regole che il Robert del 2026 aveva dimenticato.
Non soltanto il movimento base dei pezzi. Il progetto gestisce anche casi meno evidenti: promozione del pedone, en passant e condizioni che portano alla vittoria.
Le mosse non bastano.
Il colore stabilisce la direzione e ogni pezzo segue una geometria diversa.
Una cattura che sembra saltare il momento giusto.
En passant, promozione del pedone e altre eccezioni completano il motore.
Il pedone arriva in fondo e sceglie cosa diventare.
Una regola piccola sulla carta, un nuovo stato da gestire nel codice.
04 · Due modi di giocare
Sul divano oppure a distanza. Sempre contro una persona vera.
Nessuna CPU e nessun avversario inventato. In locale due persone condividono lo stesso dispositivo; online una stanza sincronizza la partita tra browser diversi.
Un solo schermo.
La scacchiera resta ferma e i giocatori si alternano davanti allo stesso dispositivo.
Una stanza condivisa.
Il secondo giocatore inserisce il codice e riceve gli stessi aggiornamenti.

- 01
- Crea una stanza e genera il codice.
- 02
- Il secondo giocatore entra nella partita.
- 03
- Firebase Realtime Database sincronizza i turni.
- 04
- La stessa combinazione di stato produce la stessa scacchiera.
05 · Il dettaglio che racconta il motore
I pezzi catturati non spariscono. Cadono fuori dalla scacchiera.
Mentre la funzione rimuove il pezzo e ne conserva lo stato, una piccola animazione lo lascia cadere accanto al tavolo. L’interfaccia rende visibile una conseguenza della logica.

- 01
La regola del pezzo identifica una mossa valida.
- 02
Lo stato rimuove la pedina avversaria dalla casella.
- 03
L’animazione la sposta oltre il bordo della scacchiera.
06 · Il motore
È un motore scritto da un principiante. E si vede nel punto in cui decide la vittoria.
Non volevo costruire contro una CPU, volevo far funzionare regole e turni tra persone. Il motore resta imperfetto, ma è un esercizio sorprendentemente giocabile.
Niente CPU.
Niente libreria di scacchi.
Niente finale perfetto.
Una mia regola controlla lo stato, stabilisce quando la partita è conclusa e dichiara chi ha vinto.

Il risultato
Uno dei miei primi progetti mi ha costretto a pensare come un programmatore.
Non dovevo soltanto far muovere delle immagini. Dovevo tradurre un sistema di regole in condizioni, ricordare lo stato della partita e prevedere cosa sarebbe successo dopo ogni scelta.
- Inizio 2022
- Un progetto nato pochi mesi dopo i primi passi nello sviluppo.
- Tutto a mano
- Nessun motore scacchistico e nessuna libreria per le regole.
- Giocabile
- Partite locali oppure online tra due persone.
Oggi
Il codice lo riscriverei. La scelta di partire da qualcosa di difficile, assolutamente no.
Non è il motore di scacchi perfetto. È la fotografia molto più onesta di ciò che capita quando scegliamo l’esperimento giusto appena cominciamo.