← All projects

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.

01 / INPUTEncode the rules

JavaScript defines legal moves and scoring.

02 / ENGINEGive bots a strategy

Different priorities produce different decisions.

03 / OUTPUTCompare the outcomes

Node.js runs games; the browser exposes results.

Tools & programs
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.