我正在制作一个简单的剪刀石头布游戏。有时当我刷新页面时什么也没有发生。发生这种情况时,不会显示任何错误。我尝试在像 w3schools 这样的在线编辑器上运行这段代码,但结果是一样的。是什么导致了这个问题?
这是我的代码:
<body onload="game()">
<script>
function game(playerItem, computerSelection) {
function computerSelection() {
var arr = ["rock", "paper", "scissors"];
var computerSelection = arr[Math.floor(Math.random() * 3)];
return computerSelection;
}
var playerItem = "rock";
if (playerItem == "rock" & computerSelection() == "paper") {
document.write(rockVSpaper);
return;
};
if (playerItem == "rock" & computerSelection() == "scissors") {
document.write(rockVSscissors);
return;
};
if (playerItem == "rock" & computerSelection() == "rock") {
document.write(rockVSrock);
return;
};
}
var rockVSpaper = "You lose! The computer's paper wraps your rock.";
var rockVSscissors = "You won! Your rock make the computer's scissors blunt.";
var rockVSrock = "Tie! A Rock doesn't do anything with another rock.";
</script>
</body>
最佳答案
它有时不起作用,因为您在 if
语句的条件中运行了三次 computerSelection()
。这意味着每次检查时,都会生成一个新的随机计算机选择,这意味着所有三个 if
条件都可能等于 false
。
要解决这个问题,您应该运行一次 computerSelection()
并将它生成的内容存储在一个变量中,然后在您的 if
语句中使用它。像这样:
var playerItem = "rock";
var computerItem = computerSelection();
if (playerItem == "rock" && computerItem == "paper") {
document.write(rockVSpaper);
return;
};
// The rest of the if statements and code...
这是一个 codepen应用上述修改后。
关于javascript - 刷新时有时无法加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48136328/