Javascript:随机数生成器始终显示相同的数字

Javascript:随机数生成器始终显示相同的数字,javascript,Javascript,Javascript上的随机数生成器有问题。我正在尝试做一个小游戏,这样可以更快地知道谁赢,而无需再次掷骰子。你掷骰子两次,然后比较,谁得到的数字越高,谁就赢 然而,“杀手”总是赢,或者打成平局。幸存者永远不会赢(也许30次中只有1次?)。这是我的代码: <!DOCTYPE html> <html> <head> <title>DBD Game Random Factor Generator</title> &l

Javascript上的随机数生成器有问题。我正在尝试做一个小游戏,这样可以更快地知道谁赢,而无需再次掷骰子。你掷骰子两次,然后比较,谁得到的数字越高,谁就赢

然而,“杀手”总是赢,或者打成平局。幸存者永远不会赢(也许30次中只有1次?)。这是我的代码:

    <!DOCTYPE html>
<html>
<head>
    <title>DBD Game Random Factor Generator</title>
    <script>

        function CalcChase () {
            killer  =   0   ;
            surv    =   0   ;
            chase   =   0   ;
            killer1 =   Math.floor(Math.random() * 12);
            killer2 =   Math.floor(Math.random() * 12);
            killer3 =   Math.floor(Math.random() * 12);
            killer4 =   Math.floor(Math.random() * 12);
            killer5 =   Math.floor(Math.random() * 12);
            surv1   =   Math.floor(Math.random() * 12);
            surv2   =   Math.floor(Math.random() * 12);
            surv3   =   Math.floor(Math.random() * 12);
            surv4   =   Math.floor(Math.random() * 12);
            surv5   =   Math.floor(Math.random() * 12);
            var res1, res2, res3, res4, res5 ;

            if (killer1 > surv1) {
                res1 = "killer";
                killer++;
            } else if (killer1 = surv1){
                res1 = "draw";
                chase++;
            } else {
                res1 = "survivor";
                surv++;
            }

            if (killer2 > surv2) {
                res2 = "killer";
                killer++;
            } else if (killer2 = surv2){
                res2 = "draw";
                chase++;
            } else {
                res2 = "survivor";
                surv++;
            }

            if (killer3 > surv3) {
                res3 = "killer";
                killer++;
            } else if (killer3 = surv3){
                res3 = "draw";
                chase++;
            } else {
                res3 = "survivor";
                surv++;
            }

            if (killer4 > surv4) {
                res4 = "killer";
                killer++;
            } else if (killer4 = surv4){
                res4 = "draw";
                chase++;
            } else {
                res4 = "survivor";
                surv++;
            }

            if (killer5 > surv5) {
                res5 = "killer";
                killer++;
            } else if (killer5 = surv5){
                res5 = "draw";
                chase++;
            } else {
                res5 = "survivor";
                surv++;
            }

            document.getElementById("chase1").innerHTML =  "<table><tr><td>" + killer1 + "</td><td> - </td><td>" + surv1 + "</td><td>" + res1 + "</td></tr><tr><td> " + killer2 + "</td> <td> - </td> <td>" + surv2 + "</td><td>" + res2 + "</td></tr><tr><td> " + killer3 + "</td> <td> - </td> <td>" + surv3 + "</td><td>" + res3 + "</td></tr><tr><td> " + killer4 + "</td> <td> - </td> <td>" + surv4 + "</td><td>" + res4 + "</td></tr><tr><td> " + killer5 + "</td> <td> - </td> <td>" + surv5 + "</td><td>" + res5 + "</td></tr> </table>" + "<p>" + "killer: " + killer  + "<br>survivor: " + surv  + "<br>chase: " + chase ;

        }
    </script>
</head>
<body>

    <button onclick="CalcChase()">Try it</button>

    <p id="chase1">Results of the game.</p>

</body>
</html>

DBD博弈随机因子发生器
函数CalcChase(){
killer=0;
surv=0;
蔡斯=0;
killer1=Math.floor(Math.random()*12);
killer2=Math.floor(Math.random()*12);
killer3=Math.floor(Math.random()*12);
killer4=Math.floor(Math.random()*12);
killer5=Math.floor(Math.random()*12);
surv1=Math.floor(Math.random()*12);
surv2=Math.floor(Math.random()*12);
surv3=Math.floor(Math.random()*12);
surv4=Math.floor(Math.random()*12);
surv5=Math.floor(Math.random()*12);
变量res1、res2、res3、res4、res5;
如果(killer1>surv1){
res1=“杀手”;
杀手++;
}否则如果(killer1=surv1){
res1=“绘制”;
蔡斯++;
}否则{
res1=“幸存者”;
surv++;
}
如果(killer2>surv2){
res2=“杀手”;
杀手++;
}否则如果(killer2=surv2){
res2=“绘制”;
蔡斯++;
}否则{
res2=“幸存者”;
surv++;
}
如果(killer3>surv3){
res3=“杀手”;
杀手++;
}否则如果(killer3=surv3){
res3=“绘制”;
蔡斯++;
}否则{
res3=“幸存者”;
surv++;
}
如果(killer4>surv4){
res4=“杀手”;
杀手++;
}else if(killer4=surv4){
res4=“绘制”;
蔡斯++;
}否则{
res4=“幸存者”;
surv++;
}
如果(killer5>surv5){
res5=“杀手”;
杀手++;
}否则如果(killer5=surv5){
res5=“绘制”;
蔡斯++;
}否则{
res5=“幸存者”;
surv++;
}
document.getElementById(“chase1”).innerHTML=“+killer1+”-“+surv1+”+res1+“+killer2+”-“+surv2+”+res2+“+killer3+”-“+surv3+”+killer4+”-“+surv4+“+killer5+”-“+surv5+””+“+surv5+”“+killer+”:“+killer+”
幸存者:+surv+”“
追逐:”+追逐; } 试试看 游戏结果

我试图让杀手的数字变小,但不知何故杀手还是赢了,或者打成了平局。感谢您的阅读和帮助!

您在
else if
子句中使用的是赋值运算符而不是比较运算符,例如:

} else if (killer1 = surv1){
这应该是这样的:

} else if (killer1 == surv1){
(注意双等号)。在您的代码中,您正在用
surv1
的值覆盖
killer1
的值,并且只要该值大于零,它将采用
else if
分支。只有当
surv1
的值碰巧等于0时,才会采用
else
分支。

您正在使用赋值运算符inst您的
else if
子句中比较运算符的ead,例如:

} else if (killer1 = surv1){
这应该是这样的:

} else if (killer1 == surv1){

(注意双等号)。在您的代码中,您正在用
surv1
的值覆盖
killer1
的值,并且只要该值大于零,它将采用
else if
分支。只有当
surv1
的值碰巧等于0时,才会采用
else
分支。

killer1=surv1
需要修改
killer1==surv1
!注意
Math.floor(Math.random()*12)
不是“掷(六面)骰子两次(和求和面)”,而是掷一个12面骰子。要获得与两个骰子相同的分布,需要使用
Math.floor(Math.random()*6)+Math.floor(Math.random()*6)
。(这并不是说你的战斗人员获胜的频率有什么不同)
killer1=surv1
需要是
killer1==surv1
!注意
Math.floor(Math.random()*12)
不是“掷(六面)骰子两次(和面总和)”,而是抛出一个12面骰子。要获得与两个骰子相同的分布,您需要使用
Math.floor(Math.random()*6)+Math.floor(Math.random()*6)
(这并不影响战斗人员获胜的频率)不知怎的,我总是犯那个错误!!你解决了我的问题,谢谢!从现在起,我会确保记住=和==的:)不知怎的,我总是犯那个错误!!你解决了我的问题,谢谢!从现在起,我将确保记住=和==:)