我正在尝试制作一个简单的程序,其中有5个掷骰子,而最后一个获胜的人数最多,问题是if / else if,因为显示的唯一结果是else if if,even虽然应该随机我试过在一开始就不将变量设置为0,而是切换位置。function RollDie() { Math.floor(Math.random() * 6); var diceRoll = Math.floor(Math.random() * 6) + 1;}var player1 = 0;var player2 = 0;player1 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();player2 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();if (player2 > player1) { text("player 2 has won", 180, 100);} else if (player2 < player1) { text("player 1 has won", 180, 100);}我希望最终结果是随机的,但不是。始终是if选项
2 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
您需要返回随机值。
如果采用不带return语句的函数,则该函数undefined默认返回。
将该值用于加法运算undefined,然后通过加法将其转换为数字,但失败了,您将获得该值NaN,这意味着您将获得一个非数字的数字。任何带有NaNreturn的数字相加,NaN即您为两个玩家获得的值。
在这种情况下,NaN始终与和进行比较,false因此您永远不会获得成功的信息。
function RollDie() {
return Math.floor(Math.random() * 6) + 1;
// ^^^
}
var player1 = 0;
var player2 = 0;
player1 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();
player2 = RollDie() + RollDie() + RollDie() + RollDie() + RollDie();
console.log(player1);
console.log(player2);
if (player2 > player1) {
console.log("player 2 has won");
} else if (player2 < player1) {
console.log("player 1 has won");
}
console.log(undefined + undefined); // NaN
添加回答
举报
0/150
提交
取消