Piedra, Papel o Tijera: Sólo dice que no comparo bien piedra y papel, pero porqué?


#1

Hola!
Estoy atascada con el ejercicio del juego piedra, papel o tijera.
He intentado lo siguiente:

var comparar = function(eleccion1, eleccion2){
    if(eleccion1 === eleccion2) {
        return "¡Es un empate!";
        }

//si se elige piedra ...
    if(eleccion1 === "piedra") {
        if(eleccion2 === "tijera") {return "Piedra gana";}
    } else {return "Papel gana";}

//si se elige papel ...    
    if(eleccion1 === "papel") {
        if(eleccion2 === "piedra") {return "Papel gana";}
        else {return "Tijera gana";}    
    }
}

Lo único que dice el sistema cuando intento esto es:
¡Uy! Probá otra vez. La función comparar no da como resultado la cadena correcta cuando se comparan papel y piedra

Intenté con una variación y me dió correcta:

var comparar = function(eleccion1, eleccion2){
    if(eleccion1 === eleccion2) {
        return "¡Es un empate!";
        }
    else if(eleccion1 === "piedra") {
        if(eleccion2 === "tijera") {return "Piedra gana";}
        if(eleccion2 === "papel") {return "Papel gana";}    
    }
}

Pero no entiendo porqué el primer bloque de código está mal...

Gracias desde ya!


#2

var comparar = function(eleccion1, eleccion2){
if(eleccion1 === eleccion2) {
return "¡Es un empate!";
}
**else if(eleccion1 === "piedra") ESTE ES TU PROBLEMA, ** {
** if(eleccion2 === "tijera") {return "Piedra gana";}**
** if(eleccion2 === "papel") {return "Papel gana";}** También deberías organizaar un poco está parte.
}
}

organiza mejor tú código es difícil de leer.


#3

A mi me pasa lo mismo, no entiendo dónde tengo el error!

var usuarioElige = prompt("piedra, papel o tijera?");
var computadoraElige = Math.random();
if (computadoraElige <0,34){
computadoraElige = "piedra";
}else if(computadoraElige <=0.67){
computadoraElige = "papel";
}else{
computadoraElige = "tijera";
}

var comparar = function(eleccion1, eleccion2) {

if (eleccion1 === eleccion2) {
    return "¡Es un empate!"
}

else if (eleccion1 === "piedra") {

        if (eleccion2 === "tijera"){
            return "Piedra GANA";
            }
        else {
            return "Papel GANA"}
}

else if (eleccion1 === "papel"){

    if (eleccion2 === "piedra") {
        return "Papel GANA";
    }
   else {
       return "Tijera GANA";
       }
}

}


#4

creo q así tendrías q empezar
var usuarioEscoge =prompt ("¿Piedra, papel o tijera?")
var computadorEscoge = Math.random()
console.log (usuarioEscoge)
if (computadorEscoge >=0 && computadorEscoge <=0.33){
alert("piedra")
}
else if (computadorEscoge >=0.34 && computadorEscoge <=0.66){
alert("papel")
}
else if(computadorEscoge >=0.67 && computadorEscoge <=1){
alert("tijera")
}


#7

Aquí un ejemplo que funciona:

var usuarioElige = prompt("piedra, papel o tijera?");
var computadoraElige = Math.random();
if (computadoraElige <0.33){
computadoraElige=("piedra");
}else if(computadoraElige <=0.66){
computadoraElige=("papel");
}else{
computadoraElige=("tijera");
}

function comparar(eleccion1, eleccion2){
if (eleccion1===eleccion2){
return "¡Es un empate!"};

if (eleccion1==="piedra"){
        if (eleccion2==="tijera"){return "¡Gana piedra!"}
        else {return "¡Gana papel!"};
        };
//------------
if (eleccion1==="papel"){
        if (eleccion2==="tijera"){return "¡Gana tijera!"}
        else {return "¡Gana papel!"};
        };
//------------
 if (eleccion1==="tijera"){
        if (eleccion2==="piedra"){return "¡Gana piedra!"}
        else {return "¡Gana papel!"};
        };
if (eleccion1, eleccion2!="piedra","papel","tijera"){
    return console.log("Esa opción no es válida, por favor, sólo se admiten las siguientes palabras: piedra, papel y tijera.")};
};

console.log("Tu elección: "+usuarioElige);
console.log("La elección de la computadora: "+computadoraElige)
var eleccion1=usuarioElige;
var eleccion2=computadoraElige;
comparar(eleccion1, eleccion2);


#8

Probé de esta manera básica y da resultado correcto.

var comparar = function (eleccion1, eleccion2){
    if(eleccion1 === eleccion2){
        return "¡Es un empate!";
    }
    if(eleccion1 == "piedra"){
        if(eleccion2 == "tijeras"){
            return "piedra gana";
        }else{
            return "papel gana";
        }    
    }
    if(eleccion1 == "papel"){
        if(eleccion2 == "piedra"){
            return "papel gana";
        }else{
            return "tijeras gana";
        }
    }
};

#9

Yo me he estrellado un buen rato intentado saber que estaba haciendo mal, y al final era que me faltaba una llave para cerrar, tenia que tener 2 en lugar de una.
var usuarioEscoge = prompt("¿Piedra, papel o tijeras?");
var computadorEscoge = Math.random();
if (computadorEscoge <0.34){
computadorEscoge = "piedra";
}else if(computadorEscoge <=0.67){
computadorEscoge = "papel";
}else{
computadorEscoge = "tijeras";
};

var comparar = function (eleccion1, eleccion2) {
if (eleccion1 === eleccion2) {
return("¡Es un empate!");
}}