local model devlog
Four game-playing AIs — a maze solver, a minesweeper solver, a 2048 player, and a Wumpus hunter — hand-written by Cline, an agent running entirely against a self-hosted Qwen3.6-27B-NVFP4 instance in Docker, on the desktop sitting right here. No rented box, no API key.
the rig
No OpenAI key, no Anthropic API. Cline talked to a vLLM server in Docker on this desktop's own GPU — every fix, commit, and deploy below came out of that one loop.
expectimax
Plays every move by branching out a few turns deep — its own choice of direction, then every place the next random tile could land — and takes whichever branch survives longest on average. It took eight rewrites of the heuristic to get here, each one benchmarked headless across thousands of games before it was allowed anywhere near the browser.
a* search
Generates a fresh 25×25 maze and threads it with A*, weighing distance-to-goal against ground already covered.
constraint satisfaction
"Should be easy," went the original request. It isn't — Minesweeper needs pure logic for the certain cells and probability for the ambiguous ones. This one reads every numbered tile as a constraint, flags what's provably a mine, and only reaches for 2,000-sample Monte Carlo when the board runs out of certainty and a guess is unavoidable.
logical inference
Reasons over smell and draft clues to rule out pits and the Wumpus one cell at a time, and once it can pinpoint the Wumpus in its line of sight, it takes the shot. Tested honestly across 500 simulated runs rather than just the one good take shown here — most of the losses are pits it had no way to see coming, not bad judgment.