The gap
Twenty-one looks simple, but splits, doubles, soft totals, dealer timing and card animation tangle quickly.
Game templates
The complete source of Copperdeal, a twenty-one card game with one-use power cards, animated dealing and a bot that plays basic strategy through a full night in the smoke test.
Coming soon
Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.
The gap
Twenty-one looks simple, but splits, doubles, soft totals, dealer timing and card animation tangle quickly.
What it is
A tested, readable rules engine with an animation queue, power cards and a strategy bot you can reskin.
How you use it
Unzip, serve the folder and open index.html, then edit game.js; npm test plays it again in headless Chrome.
Source code of a real, playable game to reskin and learn from, with a smoke test whose bot plays it.
Use it when
Built for
Hands, totals and payouts are pure functions; the deal, the player's turn, the dealer and the settlement are phases driven by a timed queue.
Each power is one branch in usePower with its own timing check, so adding a fifth power is a few lines.
Plain JavaScript and Canvas 2D with no runtime dependencies; open index.html through any static server and edit game.js.
A headless Chrome test loads the game, checks the console, presses keys and taps, and lets the built-in bot play a run to its result screen.
1 of 3
| Platform or runtime | Supported versions | Tested up to |
|---|---|---|
| Node.js | 22.12 or newer | Not stated |
The template is finished and tested. It is not on sale yet; this page will say where to get it when it is.
Coming soon
Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.