一个很好用的中奖概率控制器

Posted 小蚂蚁教你做游戏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个很好用的中奖概率控制器相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号【小蚂蚁教你做游戏】,欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。

嗨!大家好,我是小蚂蚁。

今天分享一个非常好用的概率控制器,可以用于游戏中两种行为出现的概率控制。这个方法来自于《大师谈游戏设计》(作者:吉泽秀雄)一书中,作者提到的一个 WIN-LOSS 控制器。

这个 WIN-LOSE 主要用于赌博机中控制中奖与否的概率。

一个很好用的中奖概率控制器_游戏开发

如图,就是一个 WIN-LOSS 表格,书中使用的是 16 进制,为了方便理解,我对其进行了修改和简化,改成了 10 进制,不过原理都是一样的。第一列表示的是点数,每个点数区间包含 10 个数字,右侧红色的格子表示不中奖,绿色的格子表示中奖。点数在 91 ~100 的时候,必定会中奖,点数在 1~10 的时候,基本上不会中奖,也就是说点数越大,中奖的概率就会越高。

除了点数之外,还有两个用于控制概率的值,一个是当抽到未中奖时,点数就会增加 M,另一个是当抽到中奖时,点数就会减少 N。

也就是说,增加值 M 较大的时候,中奖的概率就会提升的很快。减少值 N 较大的时候,一次中奖后,下一次中奖的概率就会降低很多,通过调整这个 M 和 N 的值,就能调整出非常多的中奖与否概率的组合。

虽然这是一个用于赌博机中的概率控制,但是很显然这个方法,可以应用于任何需要控制两个事件发生概率的地方。比如说用于敌人进攻的频率,敌人刚出来时的点数为 100,增加值 M 为 0,减少值 N 为 5,这样敌人一出来就会疯狂进攻,但是很快就会力不从心。或者让敌人刚出来时的点数为 30,增加值 M 为 5,减少值 N 为 1,这样敌人刚开始出来不怎么进攻,但是随着时间的增加,进攻频率会越来越高。

接下来,我们就制作一个示例,应用一下这个 WIN-LOSS 控制器。我们制作一个抽奖机,然后利用“点数增加值”和“点数减少值”来调整中奖的概率。

来到微信小游戏制作工具中,首先创建一个表格。

一个很好用的中奖概率控制器_算法_02

这个表格对应的就是 WIN-LOSS 图表,其中 1 表示中奖,0 表示未中奖。

接着,我们布置一个简单的场景。一个抽奖按钮,一个当前的点数,一个是否中奖的提示。

一个很好用的中奖概率控制器_游戏开发_03

接着,创建三个变量。如果未中奖,点数就会加上“增加值”,如果中奖了,点数就会减去“减少值”。

一个很好用的中奖概率控制器_算法_04

最后,看一下抽奖按钮上的积木逻辑。

一个很好用的中奖概率控制器_随机数_05

逻辑其实很简单,点击抽奖时,使用当前的点数除以 10 ,然后向上取整,可以得到表格中的行号,得到行号后,从 1~10 中取出一个随机数当作列号,抽取表格中的数判断是否等于 1,等于的话表示中奖,将点数减少。不等于的话表示未中奖,将点数增加。

最后,运行一下,抽个奖。

一个很好用的中奖概率控制器_算法_06

对于中奖与否的概率,我们可以通过修改“增加值”和“减少值”来对其进行调整。

不得说这个方法真的是很精巧,使用一个表格,两个变量,就能够实现对于概率的有效控制。

这个方法是值得纳入“游戏开发工具箱”的,因为它可以应用到很多的游戏中。作为一个游戏开发者,你应该有一个“游戏开发工具箱”,里面收纳了很多好用的工具,例如网格布局,查找算法,随机数控制......以及今天的这个 WIN-LOSS 概率控制器。这些工具会在游戏开发的过程中频繁的用到,能够帮助你极大的提升开发的效率。

另外,在了解了今天的这个方法之后,你大概也就知道那些抽奖机的原理了。当你点击抽奖按钮的那一刻,结果早就已经确定了,至于是转圈,抽卡,砸金蛋,还是刮刮卡,不过都是后续的表现形式而已。

当你持续多次没有中奖后,下一次中奖的概率就会比较大(没有人会玩一台始终无法中奖的机器),或许你可以再试一下,没准就中了。

当你中奖后,想要进一步乘胜追击的时候,不妨再想一想,因为下次中奖的概率可能会小很多,此时,适可而止落袋为安,或许是一个不错的策略。


欢迎关注小蚂蚁的微信公众号【小蚂蚁教你做游戏】,学习更多游戏开发原创教程。

一个很好用的中奖概率控制器_算法_07

以上是关于一个很好用的中奖概率控制器的主要内容,如果未能解决你的问题,请参考以下文章

PHP--翻牌活动(概率中奖..............)

抽奖概率

php一个抽奖函数(自定义中奖项数和概率)

彩票双色球中奖的几率是多少?谁算过?

彩票算概率问题

彩票中奖概率计算公式