Oops, try again. Your code returned 'paper wins!' instead of 'undefined' when the inputs are scissors and paper


#1

I don't understand why this code isn't working. Any help would be much appreciated.

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 choices are the same
    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 "paper wins!";
        }
    }
};

compare(userChoice, computerChoice);

#2

Well have a look at your code if the inputs are compare("scissors","paper"), as mentioned by the error message you end up here:

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

and if you ignore the undefined part there you can see that the error is true, scissors vs paper should be scissors wins and not paper wins.