-1

这是来自 CodeAcademy 的 Rock, Paper, Scissors 问题 - 我喜欢复习两次问题集,所以在第二次复习时,我以为我已经把一切都搞定了,但显然没有。提前致谢。

**ReferenceError: choice1 is not defined**

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if(computerChoice < 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
var compare = function(choice1,choice2){
if (choice1 === choice2){
return "The result is a tie!";
} 
if (choice1 === "rock"){
if (choice2 === "scissors")
    {
return "Rock wins.";
}
else{
    return "Paper wins.";}
}
if (choice1 === "paper"){
if (choice2 === "rock"){

return "Paper wins.";  

 }else{ 
return "scissors wins."; } 
}
if (choice1 === "scissors"){
if (choice2 === "rock"){
return "rock wins.";
}else 
return "scissors wins.";
}
};  
console.log(compare(choice1, choice2));
4

1 回答 1

1

在您的 javascript 的最后,您调用:

console.log(compare(choice1, choice2));

这些是不正确的变量。你真正想要的是:

console.log(compare(userChoice, computerChoice));

此外,如果用户拼错了 rock、paper 或 scissors,您将从比较函数中得到未定义的结果。如果出现意外情况,您应该检查该值并重新提示。

于 2013-05-22T21:51:34.493 回答