Personal project · maths, design & build
Wyrmhoard Keno
A keno build with a verified pay table. The odds on screen are the odds the maths actually produces, checked against a simulation rather than asserted.
A keno build with a verified pay table. The odds on screen are the odds the maths actually produces, checked against a simulation rather than asserted.
Personal project · maths, design & build
A keno build with a verified pay table. The odds on screen are the odds the maths actually produces, checked against a simulation rather than asserted.
What it is
Eighty squares, pick your spots, twenty numbers drawn. The board is a route-machine layout: pay table, trigger and bonus panels across the top, the grid in the centre, a symbol rail down the side and the meters along the bottom. Four dragon eggs in a round open a run of free games, and inside a run three or four eggs add games to the counter — the number goes up mid-run, which is the feeling the whole feature is built around.
The unglamorous half
Not a single pay value is typed into the page. The pay tables are generated from JSON by a fitter that prices every rung — the floor row, the retrigger, the free-game stack — against a target return, and the game reads the result. A separate verifier page runs the same outcome logic in your browser for as many rounds as you like and shows you the return it actually produces next to the return the table claims.
This is the discipline that matters for anything that handles numbers: a menu price, a booking total, a quote. The figure on screen has to be the figure the maths produces, and you should be able to check.
How it is built
Plain HTML, CSS and JavaScript with no framework and no build step. Outcome logic lives in one file with no DOM in it, presentation in another, so the maths can be exercised without a screen. Play money only — nothing here accepts or pays real currency.
More games
Your turn
The games are practice. The same habits — verified numbers, plain code, a changelog — go into every site I build for a client.