web练手--抽卡模拟器(1)
生活随笔
收集整理的這篇文章主要介紹了
web练手--抽卡模拟器(1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??? 抽卡手游玩多了,心血來潮寫個抽卡模擬器,卡等級分sss,ss,s,a,b,c六種,sss概率為0.01%,ss概率為0.1%,s概率為1%,a概率為15%,b概率為30%,剩余都為c,為了避免長期呆在非洲,加入了概率補償的設定,每一次抽到s以下的卡片,都會使概率補償計數器的值上升,這個計數器的值直接影響到抽到s以上卡的概率,當抽取到s以上卡時,重置這個計數器,防止抽到高級卡的概率過高。目前僅有單抽功能,待下次補完十連抽。卡片的抽取原理是通過Math.floor(Math.random()*10000)生成一個0-9999的整數值,根據值的大小確定抽取到的卡片種類。
代碼如下:
?
<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>Draw Card Simulator</title> </head> <body> <p id="p1"></p> <br> <form><input type="button" value="抽卡" onclick="clickButton()"> </form> <script>var sssCount = 0;var ssCount = 0;var sCount = 0;var aCount = 0;var bCount = 0;var cCount = 0;var compensate = 0;var randomDraw = 0;function drawCard(){randomDraw = Math.floor(Math.random() * 10000);if (randomDraw <= compensate) {sssCount++;compensate = 0;}else if (randomDraw <= compensate * 6 + 10) {ssCount++;compensate = 0;}else if (randomDraw <= compensate * 16 + 110) {sCount++;compensate = 0;}else if (randomDraw <= compensate * 16 + 1610) {aCount++;compensate++;}else if (randomDraw <= compensate * 16 + 4610) {bCount++;compensate++;}else {cCount++;compensate++;}}function showCard(){var p = document.getElementById("p1");var str = "sssCount: " + sssCount + "<br>ssCount: " + ssCount + "<br>sCount: " + sCount + "<br>aCount: " + aCount + "<br>bCount: " + bCount + "<br>cCount: " + cCount;p.innerHTML = str;}function clickButton(){drawCard();showCard();} </script> <body> </html>?
總結
以上是生活随笔為你收集整理的web练手--抽卡模拟器(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息技术学业水平考试 上机考试 18题
- 下一篇: 在广发行执行项目管理-关于进度安排的理解