Let's talk money! I will pay you $1000 if you can show that BGBlitz uses unfair dice. Easy money?
It is often said that Backgammon programs cheat, although no evidence has ever shown this to be the case. BGBlitz doesn't cheat, but you don't have to take my word for it, it is simple enough to prove this to yourself.
Theoretically, a program can cheat in two ways (if you find another way, please tell me):- Firstly it can change the rolls, so that it gets more 'fortunate numbers'. You could naturally use manual dice to avoid that but this can be time consuming and a little cumbersome to say the least, though feel free to try this way if you so wish. Instead you could try the following; Select "Game/Random Number Configuration" and type in any number as the seed (Initial value) e.g. 7 and "Linear Congruence" as random number generator (RNG). Now play a game and record your dice (with this example the rolls will be 53, 45, 55, 56, 11 and so on).
Now, set the seed to the identical value again (i.e. 7 Linear Congruence). The same dice will come up time and time again. Although you may move differently, whatever you try, the same sequence of rolls occurs totally independent of the state of the game. Here is a screencast that demonstates this. This is one way to take out the 'fortunate number' idea. - The second way to cheat is to peek into the future to see the upcoming rolls.
Setup any position, look which move BGBlitz chooses. Then, setup this position again and change the value of the seed. Each time, TachiAI (the Artificial Intelligence setting for BGBlitz) will select the same move totally independent of the future rolls. This shows that BGBlitz does not look into the upcoming rolls, but plays its best moves on the position in hand. You can also look at the "Best Moves" (game/ best moves) dialog box. There, you will find the same move order and the same evaluation every time, totally independent of the seed.
Further you have full transparency. On the "Game/Random Number Configuration" dialog box, you can select the RNG to use:
- The already used "Linear congruence" generator. (The algorithm is described in Watkins: "Discrete Event Simulation in C").
- The well known Mersenne Twister.
- The algorithm Sun Microsystems uses for cryptographic random number generation.
- When connected to the internet: real random numbers from www.random.org. If not connected, the aforementioned Sun algorithm is used instead.
- Recorded real random from "quantum randomness of photon arrival times" (see https://qrng.physik.hu-berlin.de).
- Numbers read from a text file. You could provide them or use the files I supplied on the download page. They contain one million rolls each and has been created with a device producing real random (Infinite Noise TRNG).
- New from 2.9.2: some variants of the XorShift RNG are added (XoRoshiro128++, XoRoshiro128**, Xoshiro256++, Xoshiro256**).
If you press "Set" the RNG is initialized accordingly and you will see the corresponding rolls during the game.
During the game the current state and the type of the random number generator is displayed in the right of the status bar e.g. MT 123456/2 means Mersenne Twister generator ("FI" = file based, "MT" = Mersenne Twister, "RO" = random.org, "CR" = cryptographic random), the seed was 123456 and 2 numbers are already rolled, so the current one is the third roll. So you can check the dice constantly.
On www.random.org you find an interisting article how to check that a sequence of numbers is random. Don't miss the Dilbert-Comic on that page, I nearly killed myself laughing.
Here is an interessting article from the two times world champion Bill Robertie on cheating of Backgammon programs.
I hope that this has helped in understanding just how well BGBlitz plays its game. The $1000 offer still applies but I feel this to be the safest bet I would ever make.