Board Game Strategy Lab
Rules engines + simulations
JavaScript rules engines run bots with different priorities. Node.js runs comparisons, Python assembles the site, and the browser lets visitors explore the results.
JavaScript defines legal moves and scoring.
Different priorities produce different decisions.
Node.js runs games; the browser exposes results.
JavaScript · Node.js · Python · Cloudflare Workers · Claude Code
How it works
I built rules engines and bots with different priorities, then compared their results across simulations. The browser version lets visitors explore those strategies. Small, manually reviewed samples of top-player statistics give the simulations some context.
What I used
JavaScript for the game engines, bots and browser interface; Node.js for simulation runs and checks; Python to assemble the site; and Cloudflare Workers to serve it. Claude Code helped with implementation and iteration.
Why I built it
I wanted to compare Azul and Ticket to Ride strategies by running games, rather than relying only on advice about what should work.
What the results mean
These are comparisons between the implemented bots, not a claim that they solve either game. Some changes made the bots worse and were reverted.