岩纸,剪刀游戏

时间:2015-12-04 23:46:27

标签: javascript

我刚刚在codecademy上完成了一个rps游戏,还有一些额外的任务,包括如果用户输入错误的信息就会产生结果。基本上,如果你不写“摇滚”,“纸”或“剪刀”的输入,它会再次问你,直到你输入正确的。

如何才能调用userChoice变量,直到得到正确的答案。我试过这样,但它只是问了2次,然后发布你写的任何内容。

var userChoice = prompt("Do you choose rock, paper or scissors?");

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

console.log("Human: " + userChoice);
console.log("Computer: " + computerChoice);
compare(userChoice, computerChoice); 

2 个答案:

答案 0 :(得分:1)

使用引用自身的函数:

var userChoice = function () {
  var choice = prompt("Do you choose rock, paper or scissors?");

  if (choice !== "rock" && choice !== "paper" && choice !== "scissors") {
    return userChoice();
  } else {
    return choice;
  }
};

This fiddle让整个事情发挥作用。

答案 1 :(得分:0)

使用以下

do  {
    userChoice = prompt("Do you choose rock, paper or scissors?");
} while (userChoice != "rock", "paper", "scissors")