4. Build "Rock, Paper, Scissors". Only prints out rock. please help


#1

So it says my code is correct and will let me move on but it doesn't technically work. I have tried it out many times and even if the numbers come out as 0.78, it will say the computer answer is rock when it should come out as scissors. Please help me fix this. :confused:

code:

var userChoice = prompt("Do you choose rock, paper or scissors?")
var computerChoice = Math.random()
console.log(computerChoice)
if ( computerChoice - 0 , 0.33){
console.log("rock");
} else if ( computerChoice - 0.34 , 0.66){
console.log("paper");
} else {
console.log("scissors");
}


#2

@evildrak,

The Math.random() method will deliver a number with a value
in the range of 0_(included)_ upontill 0.9999_(1 excluded)_.

As you will have to divide the number range form 0_(inclusive)_ to 0,9999_(so 1 excluded)_
into 3 equal partitions
we have to use an if else-if else statement.
The if else-if else skeleton looks like:

    if (conditionA) {
               //conditionA is true
                //your code 
     } else if (conditionB) {
               //conditionA is false
               //conditionB is true
              //your code 
    } else {     // <=== !! Takes NO condition-statements !!
               //conditionA is false
               //conditionB is false
              //your code 
    }

following the Instructions the conditions would be:

  1. If computerChoice is between 0 and 0.33, make computerChoice equal to "rock".
    ( 0 <= computerChoice && computerChoice <= 0.33) which we capture at the IF using
    ( computerChoice <= 0.33)

  2. If computerChoice is between 0.34 and 0.66, make computerChoice equal to "paper".
    ( 0.33 < computerChoice && computerChoice < 0.67) which we capture at the ELSE IF as
    ( computerChoice < 0.67 )

  3. If computerChoice is between 0.67 and 1, make computerChoice equal to "scissors".
    ( 0.67 <= computerChoice && computerChoice < 1) , you reached the ELSE level
    you can asume that computerChoice is greater equal to 0.67,
    the ELSE does NOT take a condition, just write your code.


#3

@leonhard.wettengmx.n
Thanks for the help, it's much appreciated. :smile:


#4

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