Share this

Last Updated: June 19, 2020

On This Page

Plinko

Introduction

Plinko is the general term for a game involving a ball or disk that falls randomly down a grid of pegs, to land in a random spot at the bottom. Such boards are also a good way to illustrate a Gaussian curve at science museums. In the case of the casino game, the concept is the same, but where the ball lands will determine how much the player wins/loses.

Provably Fair Casinos

Name Wizards Seal VA Friendly  Play
BitStarz
NO YES Visit Casino >
7BitCasino
NO YES Visit Casino >
mBitCasino
NO YES Visit Casino >
Oshi Casino
YES YES Visit Casino >
BetChain
NO YES Visit Casino >
King Billy Casino
NO YES Visit Casino >
LOKI Casino
NO YES Visit Casino >
iLUCKI Casino
NO YES Visit Casino >
CryptoSlots Casino
YES YES Visit Casino >
GunsBet Casino
NO YES Visit Casino >
Joo Casino
NO YES Visit Casino >
Mars Casino
NO YES Visit Casino >
Wild Tornado Casino
NO YES Visit Casino >
Casino Token
NO YES Visit Casino >
BetChan Casino
NO YES Visit Casino >
Bogart Casino
NO YES Visit Casino >

Rules

Following are the rules for how the game is played at CryptoGames.

  1. The player chooses a bet and a pay table (green, red, blue, or yellow).
  2. Bets are made in "credits." A credit costs 0.000001 BTC (Bitcoin) and the minimum bet is 10 credits.
  3. A ball is dropped from above a triangular field of pegs, with 16 rows and 17 possible places to land at the bottom.
  4. At each row, the ball will hit a peg and may either go left or right, each with a 50% chance.
  5. When the ball reaches one of the 17 possible resting spots at the bottom, the player will be paid according to amount bet, where the ball landed, and pay table chosen.

Per the concept of "provably fair gaming" common to Cryto-casinos, the final outcome is determined in advance. With 16 rows of pegs, there are 2^16 = 65,536 possible paths the ball can take. The final outcome is based on a random number from 0 to 65,535, which gets mapped according to one of the positions at the bottom of the grid. I have checked and the mapping is done correctly, according to the natural odds of a fair Plinko board.

The following table shows the number of combinations for each outcome, the range associated with it, and what each of the four pay tables pay for that position. All pays are on a "for one" basis.

Plinko Pay Table

Position Combinations Range Green
Pays
Red
Pays
Blue
Pays
Yellow
Pays
0 1 0 to 0 10 20 50 650
1 16 1 to 16 8 7 8 30
2 120 17 to 136 6 5 3 7
3 560 137 to 696 3 3 2 3
4 1,820 697 to 2516 2 2 1.4 1.5
5 4,368 2517 to 6884 1.3 1.1 1.2 1.2
6 8,008 6885 to 14892 1 1 1.1 1
7 11,440 14893 to 26332 0.8 0.6 1 0.7
8 12,870 26333 to 39202 0.5 1 0.4 0.7
9 11,440 39203 to 50642 0.8 0.6 1 0.7
10 8,008 50643 to 58650 1 1 1.1 1
11 4,368 58651 to 63018 1.3 1.1 1.2 1.2
12 1,820 63019 to 64838 2 2 1.4 1.5
13 560 64839 to 65398 3 3 2 3
14 120 65399 to 65518 6 5 3 7
15 16 65519 to 65534 8 7 8 30
16 1 65535 to 65535 10 20 50 650

Analysis

The following table shows my analysis of the Green pay table. The lower right cell shows an expected return of 98.37%.

 

Green Pay Table Analysis

Position Combinations Pays Probability Return
0 1 10 0.000015 0.000153
1 16 8 0.000244 0.001953
2 120 6 0.001831 0.010986
3 560 3 0.008545 0.025635
4 1,820 2 0.027771 0.055542
5 4,368 1.3 0.066650 0.086646
6 8,008 1 0.122192 0.122192
7 11,440 0.8 0.174561 0.139648
8 12,870 0.5 0.196381 0.098190
9 11,440 0.8 0.174561 0.139648
10 8,008 1 0.122192 0.122192
11 4,368 1.3 0.066650 0.086646
12 1,820 2 0.027771 0.055542
13 560 3 0.008545 0.025635
14 120 6 0.001831 0.010986
15 16 8 0.000244 0.001953
16 1 10 0.000015 0.000153
Total 65,536   1.000000 0.983701

 

The following table shows my analysis of the Red pay table. The lower right cell shows an expected return of 98.16%.

 

Red Pay Table Analysis

Position Combinations Pays Probability Return
0 1 20 0.000015 0.000305
1 16 7 0.000244 0.001709
2 120 5 0.001831 0.009155
3 560 3 0.008545 0.025635
4 1,820 2 0.027771 0.055542
5 4,368 1.1 0.066650 0.073315
6 8,008 1 0.122192 0.122192
7 11,440 0.6 0.174561 0.104736
8 12,870 1 0.196381 0.196381
9 11,440 0.6 0.174561 0.104736
10 8,008 1 0.122192 0.122192
11 4,368 1.1 0.066650 0.073315
12 1,820 2 0.027771 0.055542
13 560 3 0.008545 0.025635
14 120 5 0.001831 0.009155
15 16 7 0.000244 0.001709
16 1 20 0.000015 0.000305
Total 65,536   1.000000 0.981561

 

The following table shows my analysis of the Blue pay table. The lower right cell shows an expected return of 98.37%.

 

Blue Pay Table Analysis

Position Combinations Pays Probability Return
0 1 50 0.000015 0.000763
1 16 8 0.000244 0.001953
2 120 3 0.001831 0.005493
3 560 2 0.008545 0.017090
4 1,820 1.4 0.027771 0.038879
5 4,368 1.2 0.066650 0.079980
6 8,008 1.1 0.122192 0.134412
7 11,440 1 0.174561 0.174561
8 12,870 0.4 0.196381 0.078552
9 11,440 1 0.174561 0.174561
10 8,008 1.1 0.122192 0.134412
11 4,368 1.2 0.066650 0.079980
12 1,820 1.4 0.027771 0.038879
13 560 2 0.008545 0.017090
14 120 3 0.001831 0.005493
15 16 8 0.000244 0.001953
16 1 50 0.000015 0.000763
Total 65,536   1.000000 0.984814

 

The following table shows my analysis of the Yellow pay table. The lower right cell shows an expected return of 98.09%.

 

Yellow Pay Table Analysis

Position Combinations Pays Probability Return
0 1 650 0.000015 0.009918
1 16 30 0.000244 0.007324
2 120 7 0.001831 0.012817
3 560 3 0.008545 0.025635
4 1,820 1.5 0.027771 0.041656
5 4,368 1.2 0.066650 0.079980
6 8,008 1 0.122192 0.122192
7 11,440 0.7 0.174561 0.122192
8 12,870 0.7 0.196381 0.137466
9 11,440 0.7 0.174561 0.122192
10 8,008 1 0.122192 0.122192
11 4,368 1.2 0.066650 0.079980
12 1,820 1.5 0.027771 0.041656
13 560 3 0.008545 0.025635
14 120 7 0.001831 0.012817
15 16 30 0.000244 0.007324
16 1 650 0.000015 0.009918
Total 65,536   1.000000 0.980899

 

Summary

The following table shows the return and standard deviation for each pay table. The greatest return is for the Blue pay table, at 98.48%.

 

Summary

Pay Table Return Standard
Deviation
Green 98.37% 0.562711
Red 98.16% 0.517632
Blue 98.48% 0.464829
Yellow 98.09% 3.678698

Probably Fair

The way "provably fair" mechanism works, at least at Crypto.Games, is as follows:

  1. Enter a string consisting of the casino hash followed by the player hash into a SHA512 hash generator, like this one.
  2. Convert the first four characters in the hash from step 1 into a hexi-decimal to base-10 converter, like this one.
  3. The result of step 2 will be an integer from 0 to 65535 (164-1). This result is mapped to an outcome according to the ranges in the first table of this page.

The way this is "provably fair," is the casino will provide the hash of its own seed before you bet, ensuring the casino's contribution to the outcome was predestined, assuming the casino seed provided after the bet matches that hash.

If this sounds Greek to you, I go through the concepts and terminology of using cryptography for fair gaming in my page on Dice (Encrypted Version) more slowly.

If you want to simplify the process above, I welcome you to use this program I saved at PHP Sandbox. Just enter the Server Seed on line 4, the Client Seed on line 5, and click "execute code." The game outcome will be in the Results box below the code.

You may also see my code by clicking the button below.

// Plinko game conversion for Crypto.Games

$server_seed = "k34pQFblHvQAJ33zZZHCQtlFlhHb4KTtw2qhOahC";
$client_seed = "6VoqO9MXdSp5xSmiq2L6xcvn2XVvFWVLkC0TtLwc";
$combined_seed = $server_seed.$client_seed;
echo "Combined seed = $combined_seed\n";
$combined_hash = hash('sha512', $combined_seed);
echo "Hash of combined seed = $combined_hash\n";
$first_four=substr($combined_hash,0,4);
echo "First four characters = $first_four\n";
$hex_to_dec=hexdec($first_four);
echo "Converted to decimal = $hex_to_dec\n";
$weight_array=array(1,17,137,697,2517,6885,14893,26333,39203,50643,58651,63019,64839,65399,65519,65535,65536);
$green_array=array(10,8,6,3,2,1.3,1,0.8,0.5,0.8,1,1.3,2,3,6,8,10);
$red_array=array(20,7,5,3,2,1.1,1,0.6,1,0.6,1,1.1,2,3,5,7,20);
$blue_array=array(50,8,3,2,1.4,1.2,1.1,1,0.4,1,1.1,1.2,1.4,2,3,8,50);
$yellow_array=array(650,30,7,3,1.5,1.2,1,0.7,0.7,0.7,1,1.2,1.5,3,7,30,650);
$i=0;
while ( $hex_to_dec >= $weight_array[$i] ) {
$i++;
}
echo "Green win = \t$green_array[$i]\n";
echo "Red win = \t$red_array[$i]\n";
echo "Blue win = \t$blue_array[$i]\n";
echo "Yellow win = \t$yellow_array[$i]\n";

// Procedure
// 1. Join server and client seeds, server seed first.
// 2. Generate a SHA-512 hash of the string from step 1.
// 3. Convert first FOUR characters of the hash from hexidecimal to decimal.
// 4. Convert result from step 3 to a win per the arrays given.
?>

Written by: