Last active
December 23, 2015 16:49
-
-
Save varjmes/6664548 to your computer and use it in GitHub Desktop.
Rock, Paper, Scissors -> Is there a simpler way to do this?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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!"; | |
} | |
if (choice1 === "rock") { | |
if (choice2 === "scissors") { | |
return "rock wins"; | |
} else { | |
return "paper wins"; | |
} | |
} | |
if (choice1 === "paper") { | |
if (choice2 === "rock") { | |
return "paper wins"; | |
} else { | |
return "scissors wins"; | |
} | |
} | |
if (choice1 === "scissors") { | |
if (choice2 === "paper") { | |
return "scissors wins"; | |
} else { | |
return "rock wins"; | |
} | |
} | |
if (choice1 != "rock" || choice1 != "paper" || choice1 != "scissors") { | |
return choice1.toUppercase() + " is not a valid choice!"; | |
}; | |
compare(userChoice, computerChoice); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Because you're only choosing the winning result, you don't really need to nest your checks, the order doesn't matter. I don't know of any nice native Javascript array comparison methods but you could use #some a bit like this...
You could probably squeeze it down a little more by pulling out the check into a separate re-useable function.