PSA if you pass the lesson but your code isn't working properly


#1

I just spent a good 30 minutes trying to figure out what was wrong with my code since I passed but it didn't function correctly. Here's the incorrect code:

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";
}
} /*this closes else if on line 18*/
else if(choice1 === "paper") {
if(choice2 === "rock") {
return "paper wins";
}
else {
return "rock wins";
}
} /*this closes else if on line 27*/
else if(choice1 === "scissors") {
if(choice2 === "rock") {
return "rock wins";
}
else {
return "scissors wins";
}
} /*this closes else if on line 36*/
}; /*this closes the function on line 14*/
compare(userChoice);
compare(computerChoice);

-----Here is the correct code:

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";
}
} /*this closes else if on line 18*/
else if(choice1 === "paper") {
if(choice2 === "rock") {
return "paper wins";
}
else {
return "rock wins";
}
} /*this closes else if on line 27*/
else if(choice1 === "scissors") {
if(choice2 === "rock") {
return "rock wins";
}
else {
return "scissors wins";
}
} /*this closes else if on line 36*/
}; /*this closes the function on line 14*/
compare(userChoice, computerChoice);

-----Can you find the silly mistake I made? On the last line, I passed "userChoice" and "computerChoice" in to separate "compare" functions. I figured I would share this just in case anybody else did the same thing.

Have a good one,
Joe


#2

Thanks Joe! I was having an issue close to yours, and your post helped me out. God bless!