Chess rebuild deck
HARD
The rules are a library call and the board is an afternoon; the grind is engine strength, where the first thousand Elo arrives in one prompt and every hundred after that costs more than the last.
You will get the loop working. Then the real work starts.
The board and rules are a solved afternoon if you use chess.js. The engine is the honest part: one prompt gets you something around 1200 Elo that hangs queens under time pressure, which is genuinely fun to beat and nothing like real chess software. Getting to 2000 is a hobby, not a prompt.
- Difficulty
- HARD · 3 of 5
- First playable
- A weekend
- The original
- 3 team-years
- Released
- 1475 · Classic
- Genre
- Strategy
Build a chess app with a playable AI opponent. Vanilla JS, no framework. Requirements: - Use chess.js for move generation and validation. Do NOT write your own legality checker — en passant, castling rights, threefold repetition and the 50-move rule are where hand-rolled engines quietly go wrong. - Board UI: drag or click-to-move, legal-move dots on the selected piece, last-move highlight, check highlight, coordinate labels, board flip. - Engine: negamax with alpha-beta pruning, iterative deepening, and a transposition table. Material plus piece-square tables for evaluation, quiescence search on captures so it stops hanging pieces at the horizon. Run it in a Web Worker so the UI never blocks. - Difficulty levels mapped to search depth and a deliberate blunder rate: Beginner plays a random legal move 20% of the time, Master does not. - Move list in algebraic notation, click any move to jump to that position. FEN and PGN import/export. - Sound on move, capture, check and castle. Piece animation of 150ms with an ease-out curve. Definition of done: it beats me, and I can paste the PGN into lichess for analysis.
- An engine that plays above club level — a from-scratch minimax is a fun opponent, not a strong one
- An opening book, endgame tablebases, and accurate position evaluation
- Matchmaking, ratings, anti-cheat, and the community that makes online chess worth playing
- Move validation you can actually trust in edge cases like en passant into check
Difficulty as sampling temperature over ranked moves
Making an opponent easier by searching shallower produces something that plays incoherently and reads to a human as broken rather than beatable. Rank every move properly, then decide how often it takes the third best one, and you get an opponent that loses to you while still looking like it meant everything it did.
ScopeA weekend— build just this, not the game
Build an opponent difficulty testbed as a single self-contained HTML file. DOM or Canvas 2D, no build step, no dependencies. - Pick any small perfect-information board game you can search exhaustively in a few milliseconds, with a branching factor above six. A capture game on a 5x5 grid is fine. - The opponent always evaluates every legal move and produces a ranked, scored list. It never picks at random and it never searches shallower. - Difficulty is a temperature applied to that list. At 0 it plays the top move. As temperature rises it samples from the ranking with weight falling off by score gap, so it usually plays a good move and occasionally the third best. - Show the ranked list every turn: move, score, sampling probability, and which one was drawn. - A temperature slider from 0 to 1, and a running log of how much score the opponent gave up by not playing the top move. Definition of done: at mid temperature it loses to me while the log shows it rarely gave up more than a narrow margin. It played worse, not stupider.
Not a clone — Chess re-themed and cut down to something you can finish. The angle is the important reel: it is what turns a project into a weekend. 5,880 ways to land.
Static Deck
Chess, but a deckbuilder version of its combat, set in a cyberpunk sprawl. Rendered in N64 fog and vertex colour.
Build a browser game called "Static Deck". The pitch in one line: a strategy in the spirit of Chess, but a deckbuilder version of its combat, set in a cyberpunk sprawl. WHAT THIS IS Take the SHAPE of Chess — its core loop, and whatever makes that loop good — and rebuild it as your own game in a different world at a smaller scope. Use your own names, art and audio, which you want anyway: a reskin of somebody else's game is less interesting than a new one that works the same way. THE ANGLE — this is the important constraint, honour it above everything else A deckbuilder version of its combat. Every action becomes a card with a cost. Cards, relics and enemy intents are pure data, and the whole balance surface becomes a spreadsheet you can tune. This is what makes the project finishable. If a decision would push the scope back towards the original's, take the smaller option every time. THE THEME A cyberpunk sprawl. Permanent night and rain, neon as the only light source, and wet reflective surfaces doing most of the visual work. The theme is not a coat of paint. Let it change what the mechanics mean — a reload, a health pack and a locked door should all be things that make sense in this world and nowhere else. LOOK N64 fog and vertex colour. Heavy distance fog, per-vertex lighting rather than per-pixel, bilinear-blurred low-resolution textures, and a wide-open draw distance hidden by the fog. REQUIREMENTS - Runs in a browser with no build step. Canvas 2D unless the angle genuinely requires 3D, in which case three.js. - Fixed-timestep update loop with interpolated rendering, so it behaves the same at 60Hz and 144Hz. - Every tuning constant in one CONFIG object at the top, exposed as live sliders in a debug panel. You will find the feel by dragging those, not by prompting. - All content — levels, entities, balance numbers — in JSON or plain data files, never inline in the logic. - Audio generated with the Web Audio API rather than asset files. - Respect prefers-reduced-motion: keep the fades, drop the shake and the parallax. BUILD ORDER 1. The core loop with placeholder rectangles, at the reduced scope the angle demands. No theme, no art, no audio. Make it fun as rectangles first. 2. The angle's consequences. Cutting to bots, or to turn-based, or to one level changes the design rather than just shrinking it — find out how and rewrite step 1. 3. The theme, as content and data. 4. The look, applied last as a rendering layer over a game that already works. Start by writing a one-page plan: the core loop, what the angle removes and what that frees you to do properly, and what you are deliberately leaving out. Wait for me to approve it before writing code.
- chess.js — move generation and validation, use this
- chessboard.js — the board UI component
- lichess — the whole thing, open source
Half the time one of these already does what you wanted, and the other half it saves you a week of solving a problem someone documented in 1997.
One count per game. No account — it is tied to a salted hash of your IP, which is not stored in a form anyone can reverse. Every build adds 3 team-years to the counter on the homepage.
Then try these
Questions
How hard is Chess to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Chess is HARD (3 of 5). You will get the loop working. Then the real work starts. The rules are a library call and the board is an afternoon; the grind is engine strength, where the first thousand Elo arrives in one prompt and every hundred after that costs more than the last. Reckon on a weekend to something you can actually play — not to something that matches the 3 team-years Persia, roughly spent.
What makes Chess hard to rebuild?
The rules are a library call and the board is an afternoon; the grind is engine strength, where the first thousand Elo arrives in one prompt and every hundred after that costs more than the last. That is why it sits at HARD rather than a tier either side of it. If you want the idea without the project, the transferable part is difficulty as sampling temperature over ranked moves — a weekend of work.
How long does it take to build a Chess clone?
Wrong question, and it is worth saying why. Nobody rebuilds Chess — the original took Persia, roughly on the order of 3 team-years, released in 1475 on Classic. What you can do is reach something playable and genuinely yours in about a weekend, and then keep going for as long as it stays interesting. Any figure that claims otherwise is measuring a prototype and calling it a game.
What do I lose by building my own Chess?
An engine that plays above club level — a from-scratch minimax is a fun opponent, not a strong one. An opening book, endgame tablebases, and accurate position evaluation. Matchmaking, ratings, anti-cheat, and the community that makes online chess worth playing. Those are the parts a prompt will not hand you.
Which AI coding agent should I use to build it?
Any of Claude Code, Codex or Cursor will handle this prompt. Paste it as your first message, let the agent scaffold the project, then iterate on feel — the second, third and tenth prompts are where a game actually gets good. Work in an empty folder or a fresh git branch so you can throw it away cheaply.
One email when new games go on the list. No other reason to email you, ever.