模型05 抽奖
抽奖是个大题目,形式包罗万象。抽奖、抽签、摇签、测前世今生...所以如果掌握了抽奖的逻辑,就可以实现很多需求,而且还有很大的教育意义,即:一切电子抽奖(老虎机/麻将机/扑克机/打鱼机)的中奖概率、奖品数量都是可控的,当你按下[启动]的瞬间,是否中奖已经锁定,接下来的动画只是走过场而已,所以侥幸心理不可求,脚踏实地才是真。
1.案例分享
- 案例1:淘宝出品的《测试2018你是什么神》
- 案例2:腾讯公益出品的《2018你是一只什么汪》
2.实现方式
[数据库] 与 [随机数] 的结合使用
3.制作要点
- 要点1. 抽奖逻辑
抽奖一般是通过一个点击/摇一摇来启动,启动的并不是中奖结果,而是启动一个未知数X,让它生成一个数字,数字一般有一个取值范围,比如0001-1000。在这1000个数字中,设定中奖的数值范围,比如0001-0050这50个数为一等奖,0051-0200这150个数为二等奖,以此类推。当你触发的X值处于中奖数字范围内,即中奖,同时X将触发后面的动画,既然是中奖,动画一定会停在相应的奖品上。所以在规则上如果设定没有一等奖,那么抽到地老天荒也不会落到一等奖的画面上。
所以总结一句话就是:先有中奖结果(虽然看不到),后有中奖动画。
- 要点2. 抽奖规则
这是抽奖的核心,一切交互设定都要严格遵循抽奖规则。
[1] 中奖率
如要设定一等奖中奖率为3%,二等奖中奖率为10%,大概如下:设置前面的变量X生成随机数的范围为1-100(也可以1-1000,这只是个比例),当随机数等于1/2/3的时候,即中一等奖;当随机数》4且随机数《13的时候,即中二等奖,以此类推。
[2] 奖品数量
当有1w人参加的时候,按照3%的中奖率,理论上会产生300个一等奖。但是按照规则,一等奖奖品只有3个,这样就需要用数据库来限定奖品数量。
设定3个数据库,分别记录一等奖、二等奖、纪念奖的中奖信息。设定一等奖的数据库提交总次数为3,即代表一等奖最多只能被提交3个,当有3条信息被提交以后,即使抽奖再抽到一等奖,也不会被提交了,可以将这条数据转移到二等奖数据库去提交,或者直接转移到无奖。同理,二等奖数据库被提交满员后,如再有提交,也按照同样方法,转移到其他数据库提交。
所以,我们也许抽中了,但是就是不给你,没招啊。
[3] 抽奖次数
一般为限制抽奖次数,会设定每人(微信ID)每天可抽奖1次-3次,同时为了提高传播量,会设定分享朋友(圈)可以增加抽奖次数。这些都是通过数据库+微信结合使用来实现。
- 要点3. 抽奖形式
如果读过上文,应该知道形式就只是个形式,大轮盘、摇一摇、九宫格......万变不离其宗。
4.下期预告:模型05·抽奖
领取专属 10元无门槛券
私享最新 技术干货