我又闲的无聊了,B站盲盒模拟器=_=
以前是宝盒,现在又出了个盲盒,换汤不换药的玩意。之前用python的pygame开发了宝盒模拟器,但是pygame技术不算很成熟,连标准的文本框都没有,于是我这次打算用H5和javascript去开发,这样前端UI这块可比pygame简单太多了。
首先代码如上,简单说明一下,核心代码,getRandom函数,getRandom中负责生成一个1-10000以内的随机数。然后再说Gifts,负责加载奖池的数据数组,再getGift先通过调用getRandom去生成一个1-10000的随机数。然后初始化一个变量sum=0,再去遍历集合。sum=sum+每个宝盒的概率*100。如果随机数<=sum,证明该随机数再该礼物的概率区间之内,返回该礼物即可。
例 奖品1概率 10.11%,奖品2概率20.22%。,则奖品1的概率是在1-1011,奖品2的概率区间是1012-3033。生成的随机数是1013,则是奖品2,生成的随机数是50,则是奖品1。
剩下的逻辑就是奖品亏赚的数据统计还有与HTML视图交互了,就不细说了,然后这里的奖品图片是从破站的页面上下载过来的。单纯用这俩代码会展示不出来图片,还需要建立个image文件夹去储存图片。

mangehe.js是第一段代码。抽宝盒.html是第二段代码。建个txt文件,然后复制粘贴,再把名字改成一样的即可

直接去B站下载礼物的图片,然后将文件名改成a,b,c,d,e,f,g即可。然后现在盲盒的奖品名称都更新了。可以在initGifts这个函数里去调整。

这个东西一共花了我不到俩个小时去开发。比python那个pygame强太多了。毕竟H5是主流与用户进行交互的UI。pygame其实写核心逻辑不难,生成随机数和抽奖那块很简单。但是麻烦的是要与用户交互,没有h5那些控件,只有各种图片对象,要监听用户的鼠标键盘点击,然后点击还要判断用户鼠标像素位置,才能确认用户点击到哪个位置,而且还没有文本框用户键盘输入的文本你需要一个个字母去拼接文本。H5根本不用考虑这些。我觉得我应该去研究一下安卓了,pygame没法用=-=。
最后吐槽一下,这个盲盒比宝盒还坑,你基本一次抽几百元的都是亏,你给抽几千元甚至几万元才有机会赚