我又閑的無聊了,B站盲盒模擬器=_=
以前是寶盒,現(xiàn)在又出了個(gè)盲盒,換湯不換藥的玩意。之前用python的pygame開發(fā)了寶盒模擬器,但是pygame技術(shù)不算很成熟,連標(biāo)準(zhǔn)的文本框都沒有,于是我這次打算用H5和javascript去開發(fā),這樣前端UI這塊可比pygame簡單太多了。
首先代碼如上,簡單說明一下,核心代碼,getRandom函數(shù),getRandom中負(fù)責(zé)生成一個(gè)1-10000以內(nèi)的隨機(jī)數(shù)。然后再說Gifts,負(fù)責(zé)加載獎池的數(shù)據(jù)數(shù)組,再getGift先通過調(diào)用getRandom去生成一個(gè)1-10000的隨機(jī)數(shù)。然后初始化一個(gè)變量sum=0,再去遍歷集合。sum=sum+每個(gè)寶盒的概率*100。如果隨機(jī)數(shù)<=sum,證明該隨機(jī)數(shù)再該禮物的概率區(qū)間之內(nèi),返回該禮物即可。
例 獎品1概率 10.11%,獎品2概率20.22%。,則獎品1的概率是在1-1011,獎品2的概率區(qū)間是1012-3033。生成的隨機(jī)數(shù)是1013,則是獎品2,生成的隨機(jī)數(shù)是50,則是獎品1。
剩下的邏輯就是獎品虧賺的數(shù)據(jù)統(tǒng)計(jì)還有與HTML視圖交互了,就不細(xì)說了,然后這里的獎品圖片是從破站的頁面上下載過來的。單純用這倆代碼會展示不出來圖片,還需要建立個(gè)image文件夾去儲存圖片。

mangehe.js是第一段代碼。抽寶盒.html是第二段代碼。建個(gè)txt文件,然后復(fù)制粘貼,再把名字改成一樣的即可

直接去B站下載禮物的圖片,然后將文件名改成a,b,c,d,e,f,g即可。然后現(xiàn)在盲盒的獎品名稱都更新了??梢栽趇nitGifts這個(gè)函數(shù)里去調(diào)整。

這個(gè)東西一共花了我不到倆個(gè)小時(shí)去開發(fā)。比python那個(gè)pygame強(qiáng)太多了。畢竟H5是主流與用戶進(jìn)行交互的UI。pygame其實(shí)寫核心邏輯不難,生成隨機(jī)數(shù)和抽獎那塊很簡單。但是麻煩的是要與用戶交互,沒有h5那些控件,只有各種圖片對象,要監(jiān)聽用戶的鼠標(biāo)鍵盤點(diǎn)擊,然后點(diǎn)擊還要判斷用戶鼠標(biāo)像素位置,才能確認(rèn)用戶點(diǎn)擊到哪個(gè)位置,而且還沒有文本框用戶鍵盤輸入的文本你需要一個(gè)個(gè)字母去拼接文本。H5根本不用考慮這些。我覺得我應(yīng)該去研究一下安卓了,pygame沒法用=-=。
最后吐槽一下,這個(gè)盲盒比寶盒還坑,你基本一次抽幾百元的都是虧,你給抽幾千元甚至幾萬元才有機(jī)會賺