Statistics on random chess games

by François Labelle

I simulated 29.28 billion random chess games consisting of random moves chosen uniformly among all legal moves. My main discovery is that White is slightly more likely to checkmate than Black (7.7340% vs 7.7293%), and the number of simulated games is large enough to make the difference statistically significant (21-sigma confidence).

Overall statistics

In the table below I've broken down game termination by type, with the corresponding article number from the FIDE Laws of Chess. I do not list draws by the 3-fold repetition rule (articles 5.2d, 9.2) or by the 50-move rule (articles 5.2e, 9.3) because these draws are not automatic: they must be claimed by one of the players. Since claiming those draws is optional, I decided that my synthetic players would prefer to continue playing more random moves. On the other hand I have to take into account the 5-fold repetition rule and the 75-move rule which are the automatic versions of the previous rules. I didn't bother to program the 5-fold repetition rule because it applies to consecutive repetition, and a little thought shows that triggering it requires a completely determined sequence of about 20 plies, which is unlikely to occur at random. The 75-move rule is recent (2014) and somewhat arbitrary, so I also give statistics without it.

Reasons for game termination, with fraction and standard error
ReasonArticleFraction (%)Without the 75-move rule (%)
checkmate5.1a15.4633 ± 0.000215.5546 ± 0.0002
stalemate5.2a6.5364 ± 0.00016.7708 ± 0.0001
5-fold repetition9.6a~0%~0%
75-move rule9.6b12.0118 ± 0.00020%
insufficient material1.3, 5.2b, 9.765.9886 ± 0.000377.6742 ± 0.0002
blocked position~0%0.000504 ± 0.000001

Blocked positions

"Insufficient material" and "blocked position" are two causes of draw by impossibility of checkmate. Blocked positions should end the game immediately according to the Laws of Chess, but this is too difficult to program, so instead blocked positions were detected when the game reached 10,000 plies and didn't end for any of the other reasons. This means that I can only detect blocked positions without the 75-move rule, and I cannot tell which player caused the blocked position. The blocked positions found by the simulation had between 8 and 17 pieces. Below is an example of a blocked position that was reached at random. I picked an unusual position with one knight and two bishops.

Play online chess

Breakdown by ply

Below is a plot of the probability of each type of endgame for each ply. The integral (area under the curve) gives the overall probability from the table above.

probability per ply

Checkmate probabilities for small plies

The checkmate curve deserves a zoom-in. The shortest checkmate is by Black at ply 4, so Black starts ahead, but later we see spikes at odd plies, which means that White quickly gains an advantage.

checkmate small plies

Exact probabilities

For small plies, I was able to directly compute the probability of game termination (as opposed to estimating it using random games).

exact probability of checkmate (rounded to 20 digits)
ply 40.00003252384994744927
ply 50.00005203302269729754
ply 60.00007899349825993504
ply 70.00010589732376673660
ply 80.00011015692490256506
ply 90.00013844617672015683
ply 100.00012747076885663533

exact probability of checkmate (as a reduced fraction)
ply 4 32183 / 989520000
ply 5 275062568550753939939673 / 5286307700225917781095680000
ply 6 1259539137236405179073987700010718679274361 / 15944845651622885777913335913827610574080000000
ply 7 6795731819624501622630615704494673542714026017897565393648480103 / 64172838159665641413859840104706794890745650613373350756556800000000
ply 8 3818593265767102093368612685666117391523629781132931725412676010453615047621183598650346577 / 34665031446227166606082236339271826532241481680593297105987261491577803364388675584000000000000
ply 9 3149420780275808719262306374304328215640590114337026021569331565948455752627553337270739207779937146392240937497806337 / 22748340581782742679157419640484185516104744278278613034770353637876350749173248300031515491241529792081166336000000000000
ply 10 85450562846936719424225491089505539944466158797276373130175540777100978755580105049204295386124545191772347455404439217507855630585020328655443 / 670354180910619798429732866521176768382607715033428649372376951710178762965984271245861665225558829532239206105291521824473984532480000000000000000

The denominators always factorize into small primes. For example, the denominator for ply 4 is 27×3×54×7×19×31 and the denominator for ply 5 is 211×34×54×72×113×132×172×192×29×312×37×43. This can be explained in two steps:

  1. The probability of obtaining a particular checkmate is 1 over the product of the number of possible moves (fan-out) at each ply leading to the checkmate.
  2. The probability of checkmating at ply n is the sum of the probability of individual checkmates.

Player differences

Here we look at the same statistics, but separately for White and for Black (the player who played the move that ended the game).

Breakdown by player
ReasonFraction white (%)Fraction black (%)Difference (%)
checkmate7.7340 ± 0.00027.7293 ± 0.00020.0047 ± 0.0002
stalemate3.2497 ± 0.00013.2866 ± 0.0001−0.0369 ± 0.0001
75-move rule6.0109 ± 0.00016.0009 ± 0.00010.0100 ± 0.0002
insufficient material33.0453 ± 0.000332.9432 ± 0.00030.1021 ± 0.0004

Without the 75-move rule
ReasonFraction white (%)Fraction black (%)Difference (%)
checkmate7.7795 ± 0.00027.7750 ± 0.00020.0045 ± 0.0002
stalemate3.3667 ± 0.00013.4041 ± 0.0001−0.0374 ± 0.0001
insufficient material38.8966 ± 0.000338.7776 ± 0.00030.1189 ± 0.0004

The differences are small but statistically significant, so there must be an explanation. First, let's look at the breakdown by ply.

Breakdown by ply

Player bias per ply is more tricky to define. One way is to look at the difference between the value at ply n and the average of the neighboring values at plies n−1 and n+1, and to negate it for Black to always get a number that is positive when the difference favors White. More precisely, for an arbitrary function f(n), I define the player bias g(n) at ply n to be

g(n) = [−0.25 f(n−1) + 0.5 f(n) − 0.25 f(n+1)] (-1)n+1.

The constants were chosen so that

… + g(0) + g(1) + g(2) + g(3) + … = … − f(0) + f(1) − f(2) + f(3) − …

and the integral matches the overall difference between White and Black from the table above.

bias per ply

One theory is that White's development is always one step ahead of Black, which gives White a checkmating advantage in the beginning, but each check which fails to checkmate is likely to be punished by the capture of the checking piece (the opponent must play a random move among those that defend from the check), which eventually gives Black a material advantage and a checkmating advantage. This reversal arrives too late to completely erase White's initial checkmate advantage, but it arrives just in time to provide Black with a stalemate advantage.

Number of games ending in checkmate, stalemate

The set of games reached through n random plies is not a uniformly random sample of all possible games after n plies because games that have large fan-outs throughout are less likely to be picked at random. By keeping track of the product of the fan-outs during the simulation, it is possible to compensate for this and to get an unbiased estimate of the number of games after n plies. Below are such estimates obtained from 11.65 billion random games. The stalemate curve is noisy and to give an idea of the uncertainties I plotted two separate runs of about 6 billion games each.

number of games

The shortest stalemate obtained at random was 42 plies long, and that particular game had a product of fan-outs of 9.017791×1051, which roughly indicates that there are 9.017791×1051 / (11.65×109) games ending in stalemate at ply 42. I extrapolated the stalemate data towards the left to predict the length of the shortest possible stalemate, and it gives a good match against the shortest known stalemate which is 19 plies long.

Play online chess

Other pages discussing random chess games


page created: April 26, 2016
page last updated: May 25, 2016
back to Chess Problems by Computer