如何让代码重复此功能?

时间:2015-09-27 07:19:41

标签: javascript

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);

function compare(choice1,choice2) {
    if(choice1 === choice2) {
        return "The result is a tie!";
        #Make it ask the user and computer to make new choices
    }
    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"
        }
    }
    else {
        return "invalid choice"
    }
};

compare(userChoice,computerChoice)

那么如何让它让用户和计算机做出新的选择并重新启动它?我必须在#是的地方做。我正在做一个javascript教程,这不是评估。我试过放置 compare(userChoice, computerChoice)其中#是,但它没有效果。

2 个答案:

答案 0 :(得分:0)

将脚本加载到函数function init()。 如下所示,请调用init()

function compare(choice1,choice2) {
    if(choice1 === choice2) {
      //#Make it ask the user and computer to make new choices
      alert("The result is a tie!");
      init();
    }

编辑您的代码如下..

function init()
{
  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);
  compare(userChoice,computerChoice);
}

function compare(choice1,choice2) {
    if(choice1 === choice2) {
        //#Make it ask the user and computer to make new choices
      alert("The result is a tie!");
        init();
    }
    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"
        }
    }
    else {
        return "invalid choice"
    }
}

init();

答案 1 :(得分:0)

var userChoice = prompt("Do you choose rock, paper or scissors?");
function computerChoiceMaker(){
    var computerChoice = Math.random();
    if (computerChoice < 0.34) {
        computerChoice = "rock";
    } else if(computerChoice <= 0.67) {
        computerChoice = "paper";
    } else {
        computerChoice = "scissors";
    } console.log("Computer: " + computerChoice);
    return computerChoice;
}

function compare(choice1,choice2) {
    if(choice1 === choice2) {
        //return "The result is a tie!";
        //#Make it ask the user and computer to make new choices
        computerChoice = computerChoiceMaker();
        userChoice = prompt("The result is a tie! Do you choose rock, paper or scissors?");
        console.log("User new choice: " + userChoice);
        return compare(userChoice,computerChoice);
    }
    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"
        }
    }
    else {
        return "invalid choice"
    }
};

compare(userChoice,computerChoiceMaker());