The board · pass-and-play, the computer, or a friend on a link
Backgammon.
Nothing hidden.
Two players, one screen. The board is drawn by this page’s own hand — twenty-four points, the bar, the trays — and the rules are enforced rather than trusted: the dice say what may move, every legal landing lights up when a checker is tapped, and a move that breaks the rules simply cannot be made.
All of it, computed here: entering from the bar, hitting a blot, doubles playing four, both dice when both can be used and the higher when only one can, bearing off exact or overshot, gammons and backgammons, the doubling cube. Two people can pass one screen, the computer can take Red and play the same enforced rules against you, or a friend on the other end of a link can take Red from wherever they are. No account either way.
A game played on two devices needs one thing a game on one screen does not: dice neither player threw. So it does not have them — the roll is made on the server and written into the game’s record, and both boards read it from there. Nobody rolls for themselves, and nobody has to take the other’s word for a six.
24 points · 15 checkers a side · the doubling cube · matches to 1, 3, 5 or 7 · dice from the browser’s own crypto, or from the server on the wire
The board
Tap a checker. See what the dice allow.
Roll, then tap one of your checkers — a dot marks every quiet landing, a red ring marks a blot that would be hit, and the tray lights when a man can bear off. One die at a time, undo freely; the turn only stands once it is confirmed. When the dice cannot be played at all, the board says so and the turn passes.
The table
no match yet
White races toward the lower right and bears off into the lower tray; Red toward the upper right and the upper tray. The rail numbers are White’s own 1–24; the record writes each side’s moves in its own numbering.
The wire
One board, two devices — and the server rolls.
Open a game and you get a link. Whoever taps it lands on this board with the Red checkers, and from then on the two of you are playing the same game: your play appears on their board and theirs on yours, and anyone you send the visitor link to can watch it happen. No account, no install, nothing to keep.
The dice are the part that cannot be done the easy way. A die drawn in your browser is something the other player has to take on trust, and in backgammon that is the whole game — so neither browser draws one. Roll asks the server, the server throws with its own cryptographic generator, and the result is written into the game’s record where both boards read it. The cube is kept the same way: an offer, a take and the value it settles at are the server’s ledger, not an agreement between two tabs.
Live game
off the wire
The invite link is copied for you the moment the game exists. Send it anywhere; the first person to open it takes Red and the board starts.
Or join onePaste the whole link if that is what you were sent — the code is read out of it, and a visitor link opens as a seat in the stands rather than at the table.
What travels: the rolls, the plays, the cube, the name you type in that box, and one random id this browser invents for itself — that last one is what lets a reload or a re-tapped invite take your own seat back instead of being told the game is full. Nothing else about you is asked for. A game is swept 24 hours after the last thing that happens in it, or half an hour after it is opened if nobody ever sits down; the only other thing kept is a hashed, dated count of how many games have been opened from one address, which is what stops a script filling the board room, and it is swept after a day too. A wire game is not written into this browser’s storage at all; reloading rebuilds it from the record, roll by roll, and the match you had on the table before is still there when you leave.
The match
To 1, 3, 5 or 7 points.
Pick the length, then play to it. A game scores the cube times one — twice for a gammon, three times for a backgammon — and the record below writes down every roll and every play as it happens. An unfinished match is remembered in this browser: walk away mid-game and the position is still on the table when you return.
Match & record
The computer takes Red — it rolls, plays and turns the cube on its own. Switch mid-match and it picks Red up from wherever the position stands.
Starting a new match abandons the one on the table.
#match=5 deep-links a length.
About
Pass and play, played properly.
The move generator is the whole point of this page. It enforces, in full: entry from the bar before anything else moves; no landing on a point held by two or more; hits sending a blot to the bar; doubles playing four moves; the duty to use both dice when any sequence can, and the higher die when only one can be played; bearing off only with all fifteen home, exactly or — overshooting — only from the rearmost point. A play the rules forbid is never offered, which is also why the quick bear-off is sometimes refused: if playing the other die first uses both, both it must be.
The Crawford rule is OFF — a plain choice, stated plainly: the cube is live in every game of a match, however the score stands. In a 1-point match the cube is dead and the button never appears. A wire game is one game rather than a match, so the cube is always live there and stops where a real one does, at 64. A declined double scores the cube as it stood; gammon and backgammon are read off the final position by the board you are looking at, not claimed. At this screen there is no resignation button — drop a double, or play the position out. On the wire there is one, because the other person cannot see you walk away.
The computer, when you ask for it, takes Red and plays through the same move generator a hand does — it can only choose among the legal turns, never invent one. Its judgment is a plain positional heuristic — the pip count, blots and their exposure, points made, the bar — and its cube is a pip-count rule of thumb. It rolls the same honest dice you do, one visible move at a time. Honest company, not a champion.
At this screen the dice come from the browser’s own
cryptographic generator, rejection-sampled so all six faces are
exactly level; on the wire they come from the server’s, for
the reason given above, and are written into the game’s record
where both players can read them back. The match is saved under one
localStorage key — backgammon.match — in
this browser and nowhere else, and a wire game is not saved there
at all. Off the wire nothing is fetched and nothing is sent; on it,
what is sent is the game and the name you typed, to this
property’s own relay and nowhere else. There is no upstream
data on this page from anywhere, in either mode. The
generator carries its own test battery: twenty scripted positions,
each commented with the expected count, runnable from the console
— because a rules page that is quietly wrong is worse than
none.