我正在做石头,纸,剪刀的游戏,计算机会随机选择玩家。我创建了一个函数,该函数将随机选择一个数字(0、1或2),然后根据该数字返回岩石,纸张或剪刀的值。结果我只能得到“纸”。
function getComputerChoice() {
Math.floor(Math.random() * 3);
if (0) {
return 'rock';
}
else if (1) {
return 'paper';
}
else if (2) {
return 'scissors';
}
}
console.log(getComputerChoice());
Expected: 0, 1, or 2
Actual result: always 1
答案 0 :(得分:3)
您正在做Math.floor(Math.random() * 3)
,但随后扔掉了结果。然后在您的if
语句中,测试数字0
是否为真(不是),然后测试数字1
是否为真(是),因此总是回纸。要解决此问题,您需要将随机数保存到变量中,然后将变量与if
语句中的可能数字进行比较。
答案 1 :(得分:0)
您需要捕获Math.floor(Math.random() * 3);
并评估其结果,如下所示:
function getComputerChoice() {
let random_pick = Math.floor(Math.random() * 3);
if (random_pick == 0) {
return 'rock';
}
else if (random_pick == 1) {
return 'paper';
}
else {
return 'scissors';
}
}
console.log(getComputerChoice());