Skip to content

Morris tablebases v1

Latest

Choose a tag to compare

@brianhliou brianhliou released this 04 Sep 14:35
· 6 commits to main since this release

Strong solutions for the morris family, computed with the game-solver engine in this repo.

Six men's morris is a draw under perfect play, over all 42,372,745 reachable positions. As far as I can find this is the first published solution: six men's is absent from the academic work (Gasser 1993; Gévay and Danner 2014) and from the open-source solvers Malom and Sanmill, which cover nine, twelve and Lasker morris plus Morabaraba but not six.

These files are published so the result can be checked rather than believed.

Files

Two variants per board size: standard rules, and flying (a player reduced to three men may move to any empty point).

File Board Reachable Start value
morris4.wld two-ring, 4 men 4,111,151 Draw
morris4-flying.wld two-ring, 4 men, flying 4,111,327 Draw
morris5.wld two-ring, 5 men 17,844,721 Draw
morris5-flying.wld two-ring, 5 men, flying 17,846,785 Draw
morris6.wld two-ring, 6 men 42,372,745 Draw
morris6-flying.wld two-ring, 6 men, flying 42,383,945 Draw

Each .wld ships with a .meta.json giving the exact encoding, state counts, and win/loss/draw breakdown.

Format

2bit-le, addressed by dense index: 0=unreachable 1=win 2=loss 3=draw, two bits per state, little-endian within each byte. Values are from the perspective of the side to move. num_states is the size of the index space; reachable is how many of those a legal game can produce.

Verifying

The solver that produced these is in engine/. Rerunning it from scratch should reproduce each file byte for byte. The interactive explorer queries the same tablebases in the browser.