Codecademy上的岩石,纸,剪刀游戏

时间:2014-12-12 18:47:08

标签: javascript

我试图纳入网站上提供的其他建议(Codecademy),即。有一个平局的特征和再次接受输入的规定。这是包含错误的代码段:

var userChoice, computerChoice;

var choicesDetermination = function(){
    userChoice = prompt("Do you choose rock, paper or scissors?");
    if(userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors"){
        userChoice = prompt("Invalid input. Please try again.\n Do you choose rock, paper or scissors?");
    }
    computerChoice = Math.random();
    if (computerChoice < 0.34) {
        computerChoice = "rock";
    } else if(computerChoice <= 0.67) {
        computerChoice = "paper";
    } else {
        computerChoice = "scissors";
    } 
    console.log("User: " + userChoice);
    console.log("Computer: " + computerChoice);
}

var compare = function(choice1, choice2){
    if(choice1 === choice2){
        console.log("The result is a tie! Let's try one more time.");
        choicesDetermination();
        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 "rocks wins";
            }
        }
    }
}
choicesDetermination();
compare(userChoice, computerChoice);

这里,choicesDetermination()是我接受输入并将它们存储在userChoice,computerChoice(两个全局变量)中的函数。 我不知道为什么但是当我再次请求输入时,代码似乎运行良好;变量正确更改。但函数compare()无法正常运行;返回语句不会打印到屏幕上。

1 个答案:

答案 0 :(得分:1)

我一直在Code Academy找到的是输出字符串必须非常完美,所以请先检查一下!

我认为您的代码存在的问题是,您实际上应该return "The result is a tie! Let's try one more time." 而不是 console.log

请在下面找到完整的传递代码:

var userChoice = prompt("Do you choose rock, paper or scissors?");
if (userChoice != "rock" && "scissors" && "paper") {
    alert("Please enter 'rock', 'scissors', or 'paper' as shown.");
    userChoice = prompt("Type carefully, please: 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) {
        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 (choice2 === "rock") {
            return "rock wins";
        }
        else {
            return "scissors wins";
        }
    }
};

compare(userChoice, computerChoice);