Project
Roulette

Chess Move Trainer

Pick up a piece and see every square it can legally reach.

IntermediateWeb appGame12–24hAI-buildable 4/5no setup

Not a full chess engine — a board that knows the movement rules. Pick up a piece and its legal destinations light up, including the awkward ones: pawn captures differing from pawn moves, castling conditions, and en passant. Legal move generation is a satisfying, well-bounded problem.

UI
Logic
Useful

Hosting · Free forever

Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.

Deploy it and share a link.

Core features · 7

  • A board renders from a position with draggable pieces
  • Selecting a piece highlights its legal destination squares
  • All six piece types move correctly
  • Pawn double-step, captures and promotion are handled
  • Castling is offered only when its conditions are met
  • Illegal moves are refused and the piece returns
  • Positions can be loaded from FEN notation

The interesting part

  • Legal move generation, especially moves that would leave the king in check
  • Castling's full set of preconditions
  • Parsing FEN into a board state correctly

Once it works

  • Add check and checkmate detection
  • Add en passant
  • Add a move list in algebraic notation

Suggested stack

reacttypescripttailwinddnd-kit

Track it