Piedra, Papel o Tijeras


#1

var usuarioElige = prompt("¿Piedra, papel o tijeras?");
console.log (usuarioElige);
var computadoraElige = Math.random()
console.log (computadoraElige);

if (computadoraElige == 0, 0.33){
console.log ("piedra");
}
else if (computadoraElige == 0.34, 0.66){
console.log ("papel");
}
else{
console.log ("tijeras");
};
Salga el número que salga en el math. random() siempre da como resultado piedra.
¿A que se debe?


#2

@bitninja37340,

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)

  1. 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 )

  2. 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.