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>

猜你喜欢

转载自blog.csdn.net/zhoumeng1998/article/details/82798931
今日推荐