What if choice1 is scissors?


#1

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

I keep getting a Syntax Error - Unexpected token else message and I'm not sure why.


#2

@carlosmsegarra,
Here

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

you are using 1 closing-curly-bracket-} to many


#3

It looks like you have a curly bracket that shouldn't be there on line 23, just below return "paper wins"; and you're missing one at the bottom. I've removed the bracket on line 23 and added one at the bottom in the code below, so it should work as intended.

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

@phhu,

As you are using return statement's in your compare function
your compare function will return a result with NOdisplay
thus you will have to use

console.log( compare (userChoice,computerChoice) );

#5

True! I just copy/pasted the code and removed the bad curly bracket and added the extra one. Didn't even notice the last line.