Math.random() in rock,paper and scissors ! I don't know what's wrong!


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

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==="rock"){
return "rock wins";
}
else{
return "scissors wins";
}
}
};
compare(userChoice,computerChoice);


#2

the if/else if/else clause on the liens below will overwrite the variable computerChoice causing problems (since now computerChoice is no longer a random number between 0 and 1)

having too much code for an exercise can cause problems


#3

Question, how do you get the .34 and .67 for the computer choice? I don't remember this in the lessons.


#4

well, you want an even change for all 3 choices, so .33 is one third, so less then .34 is one third, and less then .67 is two third.


#5

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.