所以我看到了这个:https ://www.quora.com/What-algorithm-do-slot-machines-use
这些随机数是如何产生的,以及这些随机数是如何进一步翻译的?
我打算制作一台基本的老虎机,但不知道从哪里开始。
好吧,我有一个想法使用类似的东西:
$randomNumber1 = rand(1,X);
对于每个插槽,但这似乎不是很有效,我将如何解决这个问题?
编辑:与具有 3x3 而不是 1x3 线的老虎机的样式功能是否相同?
所以我看到了这个:https ://www.quora.com/What-algorithm-do-slot-machines-use
这些随机数是如何产生的,以及这些随机数是如何进一步翻译的?
我打算制作一台基本的老虎机,但不知道从哪里开始。
好吧,我有一个想法使用类似的东西:
$randomNumber1 = rand(1,X);
对于每个插槽,但这似乎不是很有效,我将如何解决这个问题?
编辑:与具有 3x3 而不是 1x3 线的老虎机的样式功能是否相同?
这取决于您希望老虎机有多逼真。如果你只是想让它随机支付,那么简单r = rand(1,X)
就可以了。这是一个很好的开始方式,因为您可以证明您的游戏机制有效:所有图形和动画都正确显示,用户界面控件按预期工作,等等。
但真正的老虎机不只是随机显示所有可能的组合。例如,如果三个 7 比三个樱桃更频繁地支付,那么老虎机被设计为显示三个 7 的频率要低得多。毕竟,老虎机的目标是让房子赚钱。
老虎机背后的数学非常复杂:对于 Stack Overflow 的答案来说太过复杂了。与设置轮子以提供一致的支出相比,假设您获得均匀分布,您如何生成随机数并不是主要问题。
我的建议是您使用内置的随机数生成器,直到您的游戏正常运行。然后,如果您希望它更像真正的老虎机,请在您最喜欢的搜索引擎中输入“老虎机数学”,然后开始学习。
为此,我会使用久经考验的旧 Fisher-Yates 洗牌算法。 这个问题有一个 JavaScript 实现,它可以用于槽,如下所示:
let slotOptions = ["cherry", "seven", "bell", "bar"];
function play() {
return [shuffle(slotOptions), shuffle(slotOptions), shuffle(slotOptions)];
}
let [slot1, slot2, slot3] = play();
// do something with those slots here