The gap
Players lose trust when a puzzle's star target is not actually reachable, or far too easy.
Game templates
The complete source of Wainlock, a sliding unblock puzzle with forty search-checked yards, haystacks, hints and a daily yard.
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
Players lose trust when a puzzle's star target is not actually reachable, or far too easy.
What it is
Every yard ships with its true minimum from breadth-first search, and hints are computed live from the player's position.
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
Random yards rarely need more than twenty moves, so the hardest ones were mutated (a cart added, removed or a haystack moved) and kept whenever the search showed they still needed as many moves or more.
The search and the move counter agree: sliding one cart any distance is one move, and consecutive slides of the same cart are merged, so the score matches the minimum the search reports.
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.