Play Raccoon

Cubeless money game, in your browser

The interface is basic and rough around the edges, and a polished UI is not on the roadmap at the moment — the work goes into the engine. If you build backgammon front-ends, we would like to hear how the engine could best be exposed for you to consume; get in touch, and see milestone 5 for where that is heading.

The board needs JavaScript and WebAssembly. The engine’s code also runs in a terminal, though loading the trained network there is not wired up yet.

How to play

  • Roll starts the game and every turn after it. On the opening roll both sides throw one die and the higher one moves first.
  • Click a checker, then the point you want it on. Legal destinations light up as soon as a checker is selected; clicking the same checker again puts it back down. The bar and the bear-off tray are click targets like any point.
  • The turn plays itself out. There is no confirm button — when the last half-move of the roll is entered, the play is committed and Raccoon replies.
  • Watch Raccoon’s turn. Its dice land, then its move appears a beat later. The line above the board says who rolled what and what they played, and the table underneath ranks every play Raccoon considered for that roll.
  • Undo takes back everything you have entered since the dice were rolled.
  • Hint ranks the legal plays for the current roll, so you can see what the engine would do before committing to your own move.
  • New game starts over.

Rules in force

Cubeless money game: gammons count double, backgammons triple, and there is no doubling cube — the engine does not handle one yet. The engine picks its move by evaluating every legal play with a single forward pass of the network, which is exactly the 0-ply value lookahead the published strength numbers measure. You are playing the measured engine, at full strength, with no handicap and no adjustable level.

Everything runs on your machine. The network is downloaded once — about 47 MB, the first time the engine is asked to think — and evaluated locally from then on; no position you play leaves your browser.

To load a specific position instead of playing one out, use the analyser.