可证明的公平
游戏事件是将随机生成的浮点数转换为特定游戏相关的结果。这包括从掷骰子的结果,到牌堆中牌的顺序,甚至到 Mines 游戏中每颗炸弹的位置。
下面对我们平台上每种不同游戏的浮点数到游戏事件的转换方式进行详细说明。
掷骰子
在我们的骰子游戏中,可能的掷骰范围为 00.00 到 100.00,共有 10,001 种可能结果。游戏事件的转换方式是将浮点数乘以可能结果数,再除以 100,以确保生成的数字符合我们规定的骰子范围。
// 游戏事件转换
const roll = (float * 10001) / 100;Limbo
Pagdating sa Limbo, gumagamit kami ng dalawang hakbang na proseso. Una, kinukuha namin ang float at minumultiply ito sa parehong maximum na posibleng multiplier at house edge. Pagkatapos, upang makabuo ng isang game event na may 概率分布, hinahati namin ang maximum na posibleng multiplier sa resulta ng unang hakbang upang malikha ang game event sa anyo ng crash point.
// 带庄家优势 0.99(1%)的游戏事件转换
const floatPoint = 1e8 / (float * 1e8) * houseEdge;
// 将 crash point 四舍五入到所需分母
const crashPoint = Math.floor(floatPoint * 100) / 100;
// 合并所有小于 1 的 crash points
const result = Math.max(crashPoint, 1);Plinko
在任何 Plinko 游戏中,生成的结果基于落球路径。游戏事件决定落球在每一层的方向。玩家可以选择 8 到 16 个钉子(pins)进行游戏,这决定了生成完整路径所需的游戏事件数量。由于每次落球只有两个可能方向(左或右),转换方式是将每个浮点数乘以 2,对应到以下索引:
// 索引 0 到 1:从左到右
const DIRECTIONS = [ left, right ];
// 游戏事件转换
const direction = CARDS[Math.floor(float * 2)];



