【如果动态分配水民和杀手的数量 _js随机数 】 | IT修真院·坑乎
问题已收录 如果动态分配水民和杀手的数量
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(2)
js随机数
详细描述
截图
代码
编辑于2024-11-21
  • [北京|结业弟子]JS-肖明明
    1
    <body>
    <input type="text" name="" id="ipt" value="8" oninput="show()">
    <p>杀手<span id="killerNum"></span></p>
    <p>平民<span id="civilianNum"></span></p>
    <script>
    //取得总人数的值
    function getAllNum() {
    var a = document.getElementById('ipt').value - 0;
    return a;
    }
    //取得杀手的值
    function getKillerNum() {
    var allNum = getAllNum();
    switch (allNum) {
    case 4:
    case 5:
    return 1
    break;
    case 6:
    case 7:
    case 8:
    return 2;
    break;
    case 9:
    case 10:
    case 11:
    return 3;
    break;
    case 12:
    case 13:
    case 14:
    case 15:
    return 4;
    break;
    case 16:
    case 17:
    case 18:
    return 5;
    break;
    }
    }
    //实时显示人数
    function show() {
    var killerNum = getKillerNum();
    var allNum = getAllNum();
    var civilianNum = allNum - killerNum;
    if (killerNum) {
    document.getElementById('killerNum').innerHTML = killerNum;
    document.getElementById('civilianNum').innerHTML = civilianNum;
    } else {
    document.getElementById('killerNum').innerHTML = '';
    document.getElementById('civilianNum').innerHTML = '';
    }
    }
    </script>
    </body>

    可以复制一下我的代码,看看是不是你想要的效果

    编辑于2019-06-25
  • [深圳|结业弟子]JS-钟俊
    0

    如何动态分配水民和杀手的数量?

    这个其实就是让输入框的数值,和杀手的数值,以及滚动条的数值,实现相互关联,

    我这里运用的是设置三个函数,分别为输入框的,上方人数的,和滚动条的,然后

    将这三个函数相互调用, 从而实现相互关联,相互绑定的作用;


    代码如下:

    function kiOrCi () {
    if(playersNum.value < 15){
    killers.value = Math.floor(playersNum.value / 3);
       }
    else {
    killers.value = Math.floor((playersNum.value-1) / 3);
       }
    killers.innerText = killers.value;
       //分配杀手数量
       civilians.value = playersNum.value - killers.value;
       civilians.innerText = civilians.value;
       console.log(killers.value,civilians.value);
       //分配平民数量
    }

    function pNumber(){
    if(playersNum.value>=4&&playersNum.value<=18){
    rangeNumber.value=playersNum.value;
           //设置数值范围
       }
    else{
    alert("请输入正确的玩家数量");
           playersNum.value=4;
           //数值不正确时重置
       }
    }

    function slid(){
    playersNum.value=rangeNumber.value;
       kiOrCi();
       //设置滑动条的值等于玩家人数
    }

    function btnLeft(){
    rangeNumber.value--;
       playersNum.value = rangeNumber.value;
    }
    function btnRight(){
    rangeNumber.value++;
       playersNum.value = rangeNumber.value;
       //+-按钮
    }

    rangeNumber.oninput = function () {
    slid();
       kiOrCi();
    };
    btnL.onclick = function () {
    btnLeft();
       kiOrCi();
    };
    btnR.onclick = function () {
    btnRight();
       kiOrCi();
    };
    playersNum.onchange = function () {
    pNumber();
       kiOrCi();
    };
    killers.onchange = function () {
    kiOrCi();
    };
    //点击,滑动 数值联动

    //这是我实现的一种思路,通过多个函数互相调用实现

    相互联动,你可以参考一下;

    编辑于2018-10-26