Verifying Grime Dice
I got a set of non-transitive Grime dice from UK enterprise Maths Gear.

James Grime explains non-transitive dice better than anyone else, really.
The idea is to have a dice game that’s got the “rock beats scissors beats paper beats rock” cycle of which pair of dice beats which other pair of dice. Because the game is with dice, the “pair of dice beats this other pair” property is based on probability.
When I spilled the Grime Dice to get the picture above, I lucked out and missed the features that make the cycle-of-winners possible.

There’s more than six pips on some sides, and the olive dice have a blank side. I wish that each side of each color die had a different number of pips, like common dice do, but maybe that’s impossible. James Grime is a very clever person.
The delightful part is that the game works. You and your opponent each pick a color and roll, comparing the sum of pips on both dies. If your sum is greater than your opponent’s sum, you win the roll, and vice versa. Roll 10 times, whoever won the most rolls is the game’s winner. It’s probabilistic, but it works out almost every time, just as Grime predicts.
After playing a few games, I got to wondering. Olive dies beat blue dies beat magenta dies. What happens if you play with all the color combos like olive vs magenta?
I didn’t think it through all the way, and I hadn’t done a programming project for a few weeks, so I wrote a program to play each color against all the other colors.
You can chose single or double die games, produce text or GraphViz output, and change the number of rolls per game.
Here’s what my program determines. An arrow points from a winning dice color to a losing dice color, for 2-die, 10,000 roll games.

This almost exactly recreates Grime’s which-color-wins diagram.

circo chooses where to draw the “I win” lines differently than Grime did,
but I make the two diagrams out to be isomorphic.
Here’s the numeric probabilities calculated by my program.
| Wins | probability | Looses | Probability |
|---|---|---|---|
| red | 0.58 | yellow | 0.42 |
| blue | 0.60 | red | 0.40 |
| red | 0.69 | magenta | 0.31 |
| red | 0.52 | olive | 0.48 |
| yellow | 0.55 | blue | 0.45 |
| magenta | 0.60 | yellow | 0.40 |
| yellow | 0.69 | olive | 0.31 |
| blue | 0.56 | magenta | 0.44 |
| olive | 0.60 | blue | 0.40 |
| magenta | 0.58 | olive | 0.42 |
Red dice beat olive dice 52% of the time. Grime calls that about equal, and uses that property to propose a 3-player game.
The who-wins graph is not isomorphic to a rock-paper-scissors-spock-lizard game. The Red dies beat 3 colors, and only olive (barely) beats red. Olive loses to 3 colors.

Above, rock-paper-scissors-spock-lizard game. Each symbol beats two other symbols, and is beaten by two symbols.
The single die game Grime proposes is isomorphic:

Each color die node has two arrows in, two arrows out.
What I learned
After playing a few 10-roll games of Grime Dice, I was convinced that as a set, they were non-transitive. I did not understand the “pentacle inside the circle” graph of which color dice beat which other color dice, so I could not conceive of multiple smaller cycles.
Sure, red beats blue beats olive beats yellow. Yellow does beat blue, but red also beats yellow. Also red beats blue beats olive beats red.
I had to write the program carefully to get the “choose 2 out of 5”
combinations of colors correct,
and I was surprised by the pentacle-in-circle graph produced by circo.