我正在制作一个石头,纸,剪刀的游戏,计算机对玩家做出随机选择。我创建了一个函数,该函数将随机选择一个数字(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
你正在做Math.floor(Math.random() * 3)
但随后扔掉了结果。然后在if
语句中,你测试数字0
是否为真(事实并非如此(,然后测试数字1
是否为真(事实为真(,因此始终返回纸张。要修复它,您需要将随机数保存到一个变量中,然后将该变量与 if
语句中可能的数字进行比较。
您需要捕获然后评估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());