var userChoice = prompt("Do you choose rock, paper, or scissors?")
var computerChoice = Math.random()
if(computerChoice(0 < 0.33)) {
computerChoice = ("Paper");
} else if(computerChoice(0.34 < 0.66)) {
computerChoice = ("Rock");
} else {
computerChoice = ("Scissors");
}
这段代码中是否有我遗漏的东西?它对我来说很好..无论如何,正如我所说,当我运行它时,我得到上面提到的TypeError。如果随机数低于.33,我试图获得Paper,如果是.34-.66则是Rock,如果是.67-1则是Scissors。
答案 0 :(得分:2)
无论何时使用Math.random,它都会将变量设为Number,并尝试将其作为函数。
您的代码应如下所示:
var userChoice = prompt("Do you choose rock, paper, or scissors?")
var computerChoice = Math.random();
if(computerChoice < 0.33) {
computerChoice = "Paper";
} else if(0.34 < computerChoice && computerChoice < 0.66) {
computerChoice = "Rock";
} else {
computerChoice = "Scissors";
}
现在你把随机数比作A号而不是函数
根据@Anthony Forloney更新代码
答案 1 :(得分:1)
var computerChoice = Math.random()
创建Number类型的变量。在您的条件中,您可以:
if(computerChoice(0 < 0.33))
通过在computerChoice
之后添加括号,JS解释器认为您正试图通过该名称调用函数,而实际上它是一个数字。
答案 2 :(得分:0)
您可以使用conditional operator。此外,重用变量不是一个好主意,所以:
var userChoice = prompt("Do you choose rock, paper, or scissors?")
var num = Math.random();
var computerChoice = num < 0.33? "Paper" : num < 0.66? "Rock" : "Scissors";
虽然像这样的小数舍入也会略微偏向结果(但我认为没有人会注意到......)