Piedra papel tijera prueba final del juego


#1

He probado cambiando el primer parametro de la llamada funcion comparar manualmente, y la respuesta siempre es correcta, en cambio me salta el siguiente error

¡Uy! Probá otra vez. La función comparar no da como resultado el string correcto cuando se comparan tijeras y piedra

y mi codigo es este

var usuarioEscoge = prompt("¿Piedra, papel o tijera?");
var computadorEscoge = Math.random();
if (computadorEscoge <0.34){
computadorEscoge = "piedra";
}else if(computadorEscoge <=0.67){
computadorEscoge = "papel";
}else{
computadorEscoge = "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 (eleccion2 === "piedra")
{
if (eleccion1 === "tijera")
{
return ("piedra gana");
}
else
{
return ("papel gana");
}
}
else if (eleccion1 === "tijera")
{
if (eleccion2 === "piedra")
{
return ("piedra gana");
}
else
{
return ("tijera gana");
}
}
else if (eleccion2 === "tijera")
{
if (eleccion1 === "piedra")
{
return ("piedra gana");
}
else
{
return ("tijera gana");
}
}
else if (eleccion1 === "papel")
{
if (eleccion2 === "piedra")
{
return ("papel gana");
}
else
{
return ("tijera gana");
}
}
else if (eleccion2 === "papel")
{
if (eleccion1 === "piedra")
{
return ("papel gana");
}
else
{
return ("tijera gana");
}
}
};
comparar(usuarioEscoge, computadorEscoge);


#2

hola amigo arraymaster78838
el problema que tienes es que te equivocaste en la segunda comparación

else if (eleccion2 === "piedra") {si (eleccion1 === "tijera") {return ("gana piedra");} otra cosa {return ("gana papel");}}

errore
1 cambiaste la elección1 en if elección2 la colocaste en else if
2 la comparación 2 deve ser elección1 == "papel" elección2 == "piedra"
3 no estas llevando el orden de comparación con el problema y el orden de escritura

corrige los puntos y verifica la escritura como te lo piden en la lección
espero te sirva esto.


#3

Yo lo hice de ésta forma:

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

var comparar = function(usuarioElige,computadoraElige)
{
if (usuarioElige === computadoraElige)
{
return "¡Es un empate!";
}
else if (usuarioElige === "papel")
{
if (computadoraElige === "piedra")
{
return "gana papel";
}
else
{
return "gana tijera";
}
}
else if (usuarioElige === "piedra")
{
if (computadoraElige === "tijera")
{
return "gana piedra";
}
else
{
return "gana papel";
}
}
else if (usuarioElige === "tijera")
{
if (computadoraElige === "papel")
{
return "gana tijera";
}
else
{
return "gana piedra";
}
}

                                                     }

comparar(usuarioElige,computadoraElige);

//si lo haces así podrás jugar sin problemas


#4

Buenas! Soy nueva en esto, espero no quedar fatal. He hecho el juego de piedra papel y tijera. El caso es que cuando le doy a guardar y enviar código me lo da todo como bueno, pero en ningún momento me salta el mensaje de quien gana cuando respondo como usuario, cosa que supongo que tendría que salir en algún momento. ¿Alguna ayuda? Este es el código que he puesto:

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

console.log(computadoraElige);

if(computadoraElige < 0.34) {
computadoraElige = "Piedra";
}
else if(computadoraElige < 0.67) {
computadoraElige = "Papel";
}
else {
computadoraElige = "Tijeras";
};

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

¡Muchas gracias!


#5

El problema es que tienes que cambiar eleccion1 por usuarioElige y eleccion2 por computadoraElige para que lo pueda interpretar, yo lo hice de ésta forma:

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

var comparar = function(usuarioElige,computadoraElige)
{
if (usuarioElige === computadoraElige)
{
return "¡Es un empate!";
}
else if (usuarioElige === "papel")
{
if (computadoraElige === "piedra")
{
return "gana papel";
}
else
{
return "gana tijera";
}
}
else if (usuarioElige === "piedra")
{
if (computadoraElige === "tijera")
{
return "gana piedra";
}
else
{
return "gana papel";
}
}
else if (usuarioElige === "tijera")
{
if (computadoraElige === "papel")
{
return "gana tijera";
}
else
{
return "gana piedra";
}
}

                                                     }

#6

Perdona! Ya lo solucioné. El código estaba bien, el problema era que a la hora de jugar, tenía que elegir entre Piedra, Papel o Tijeras, con la primera letra mayúscula. No me daba cuenta de que lo ponía en minúscula y por eso el ordenador no lo reconocía.
Gracias por contestar!


#7

Aquí dejo 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);