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


#1


What if choice1 is scissors?

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

Seems to run perfectly but I get an error saying
"Oops, try again. Your code returned 'paper wins' instead of 'undefined' when the inputs are scissors and rock"

to be able to move to the next tutorial

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

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 (choice2 === "rock") {
        return "paper wins"
    }else{
        return "scissors wins"
    }
};

console.log("You chose: " + userChoice);
console.log("Computer:  " + computerChoice);

compare (userChoice, computerChoice)


#2

@ajaxcoder16267
The code runs perfectly fine but doesn't respect the instruction.

Don't do this! It repeats the code! Instead, you should test whether choice1 === "scissors" or "paper". And then you test in your else if statement whether choice2 === "scissors", "paper", or "rock". Here's how should look your structure:

if (choice1===choice2) {
//Code runs here
} else if (choice1==="rock") {
if (choice2==="scissors") {
//Code runs here
}else {
//Code runs here
}
}else if (choice1==="scissors") {
if (choice2==="rock") {
//Code runs here
}else {
//Code runs here
}
}else if (choice1==="paper"){
if (choice2==="rock") {
//Code runs here
}else {
//Code runs here
}
}

Hope this helped you!


#3

@ajaxcoder16267,

Please read
http://www.codecademy.com/forum_questions/559dcb4be39efe550f00006b
and concentrate on:

  • the creation of the compare function
  • the truth-table
  • the build of the IF ELSE-IF statement structure as part of the compare FUNCTION-BODY
  • the execution of the compare function (keeping in mind that the return statement is used )