What's wrong with my rock paper scissors code?


#1

I’ve been trying to get this code correct for two days now and I can’t seem to find the bug. The error is on the last else if… Thanks in advance!

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

SyntaxError: Unexpected token else

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) {
    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";
    }
}

#2

here:

else if (choice1 === "paper") {
    if(choice2 === "rock") {
        return "paper wins";
}}

you have two closing curly brackets, why?


#3

I figured out what was wrong with the curly brackets. THANK YOU SO MUCH! Now I have this error.

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

Oops, try again. Make sure to call your compare function with userChoice and computerChoice as the arguments!

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


#4

when you call compare function:

compare(“userChoice”,“computerChoice”);

why are the arguments of type string? You should supply the variable which hold the user and computer choice


#5

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