Javascript中的岩石纸剪刀

时间:2015-01-06 18:03:02

标签: javascript

所以我正在尝试构建用户被提示输入“摇滚”,“纸张”或“剪刀”的代码,然后将其与随机计算机选择进行比较。计算机的选择被认为是0到1之间的随机值。我们的比较函数通过这两个选项并比较它们的值以返回输出,告诉哪个手势信号获胜。我收到语法错误,但似乎无法弄清楚我错过了什么。

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!";
    } else if (choice1 === "rock") {
        if (choice2 === "scissors") {
            return "rock wins";
        } else {
            return "paper wins";
        }
    } else if (choice1 === "paper") {
        if (choice2 === "rock") {
            return "paper wins";
        } else {
            return "scissors wins";
        }
    } else(choice1 === "scissors") {
        if (choice2 === "paper") {
            return "scissors wins";
        } else {
            return "rock wins";
        }
    }
}

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

3 个答案:

答案 0 :(得分:6)

您的else声明有条件。删除它或添加if

} else if (choice1 === "scissors") {
  if (choice2 === "paper") {
    return "scissors wins";
  } else {
    return "rock wins";
  }
}

答案 1 :(得分:2)

else (choice1 === "scissors") {就是问题所在。执行else if (...) {else {

顺便说一下,语法错误会告诉您确切的错误。在Chrome开发者工具中,我只需要在控制台中单击错误即可查看该行。

答案 2 :(得分:0)

else (choice1 === "scissors") {

是非法的陈述。

else if 

期望有条件的。

else 

不应该有一个。