从函数内部运行外部变量

时间:2014-03-07 09:20:41

标签: javascript

如果结果为tie我需要通过asling "Do you choose rock, paper or scissors?"

再次运行此代码

但是这段代码有问题。

在按摩"The result is a tie! Would you like to play new game?(yes or no)"之后,我使用“compare(userChoice, computerChoice);”再次运行此代码。它不起作用。

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";
    } console.log("Computer: " + computerChoice);

    var compare = function(choice1, choice2)
    {
     if (choice1 === choice2) {
        var newChoice = prompt ("The result is a tie! Would you like to play new game?(yes or no)");
       if ( newChoice === "yes"){
       compare(userChoice, computerChoice);
       }
       else {
       return "Have a nice day!";
       }
         }
    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 === "paper") {return ("scissors wins");}
        else {return (" rock wins");}
        }
    };
    compare(userChoice, computerChoice);

2 个答案:

答案 0 :(得分:0)

是的,那是因为你再次打电话

compare(userChoice, computerChoice);

在比较函数内的第四行。

答案 1 :(得分:0)

试试这个:

var choices = ['rock', 'paper', 'scissors'];

var makeRandom = function() {
  return parseInt(Math.random()*3);
}
function game() {
  var userChoice = prompt("Do you choose rock, paper or scissors?");
  var index = choices.indexOf(userChoice);
  if(index === -1) {
    var bl = confirm('Your choice is outof range, would you like to play Again?');
    if(bl) game();
  }
  var computerChoice = makeRandom();
  if(index === computerChoice) {
    var bl = confirm('It is a tie, would you like to play Again?');
    if(bl) { game(); }
  } else if((index === 0 && computerChoice === 1) || (index === 1 && computerChoice === 2) || (index === 2 && computerChoice === 0)) {
    alert('you loose');
  } else {
    alert('you win');
  }
}
game();