Rock paper scissors, what is wrong with this code?


#1


https://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/1/4?curriculum_id=506324b3a7dffd00020bf661#

I passed with this code, but it doesn't do what its suppose to. It returns computerChoice and that's it, no return about the result. At first i had all choice1 changed to userChoice and choice2 to computerChoice, the output was the same, but I didn't pass the lesson.

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 (userChoice, computerChoice)
{
    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 win";
        }
    }
};


#2

I think I might know your problem.

On line 10, your code should be var compare = function(choice1,choice2)

And at the end of all your code should be compare(userChoice,computerChoice);

Hope this helps!


#3

Yep, that did it, thanks very much!


#4

Great, glad I could help!


#5

But I don't understand, how does computer know that choice1 is userchoice and choice2 is computerchoice?

Edit: nevermind, i'm stupid xD


#7

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.