The gap
Random mahjong deals can be unsolvable, and the free-tile rule, layer drawing and tile art take long to get right.
Game templates
The complete source of Jadeholm, a mahjong solitaire with ten layered layouts, always-solvable deals, combos, hints, shuffles, undo and a tile set drawn in code.
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
Random mahjong deals can be unsolvable, and the free-tile rule, layer drawing and tile art take long to get right.
What it is
This template ships a reverse dealer, a correct free rule, layered drawing and a complete code-drawn tile set.
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
The dealer removes two free tiles at a time from the full layout and gives them a matching pair of faces; played forward, that order is a solution.
Each garden is a list of rectangles of tiles in half-tile units with a layer number; neighbour lists for the free rule are computed once.
Plain JavaScript and Canvas 2D; 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.