¡Hola Platzinauta! En el curso, el profesor Diego de Granda nos dio un reto, hacer el juego piedra, papel y tijera. Me di la tarea de realizar el reto para que sea interactivo, pidiendo un “arma” al usuario y eligiendo un “arma” de forma aleatoria para la computadora.
A continuación te explicaré paso a paso como resolver este reto, ¡Manos a la obra!
Crearemos un array con todos las “armas” que tenemos (Piedra, papel y tijera), la variable del array será de tipo const
, ya que no modificaremos el array.
// 1\. Array con las armas a elegirconst ARMAS = ['piedra', 'papel', 'tijera'];
Una vez tenemos nuestro array ARMAS
, debemos crear una función para que la computadora elija aleatoriamente su arma. En este caso utilizaremos los métodosMath.floor()
que redondea un número con decimales a su “piso” (Ejemplo: 1.92 → 1.00), y Math.random() que devuelve un número aleatorio entre 0 y 1 (1 inclusivo).
// 2\. Obtener un elemento de un array de manera aleatoria
functioneleccionArma(arr) {
return arr[Math.floor(Math.random() * arr.length)];
}
Luego usaremos la función para que la computadora seleccione su arma aleatoria.
// 3. Seleccionar aleatoriamente el arma de la computadora
let armaComputadora = eleccionArma(ARMAS);
Ahora le pediremos su arma al usuario, pero debemos verificar que el arma que elija este dentro de las armas permitidas.
prompt()
.some()
, haremos la validación de que el arma ingresada es valida.while
ejecutara su código pidiendo de nuevo por un arma hasta que esta sea valida.toLowerCase()
, para poner todo el texto ingresado por el usuario en caso de que este utilice mayúsculas y así la validación sea exitosa./* 4\. Pedir al usuario que elija su arma y Validar
que su respuesta este dentro de las opciones */let armaUsuario = prompt('Elige tu arma: ').toLowerCase();
while ( ARMAS.some( function(elemento) { return elemento == armaUsuario;} ) == false) {
armaUsuario = prompt('Elige una opcion valida: ').toLowerCase();
}
Para saber quien gano, crearemos otra función para revisar el resultado dentro de todas las posibles opciones. Usaremos condicionalesif
, else if
y else
para esta tarea.
// 5\. Obtener resultado de la partida
functionresultadoPartida(arma1, arma2) {
if (arma1 == arma2) {
return'Empate!';
} elseif (arma1 == 'piedra') {
if (arma2 == 'papel') {
return'Perdiste! :(';
} else {
return'Ganaste! :)';
}
} elseif (arma1 == 'papel') {
if (arma2 == 'tijera') {
return'Perdiste! :(';
} else {
return'Ganaste! :)';
}
} elseif (arma1 == 'tijera') {
if (arma2 == 'piedra') {
return'Perdiste! :(';
} else {
return'Ganaste! :)';
}
}
}
Finalmente, imprimiremos nuestros resultados interpolando las variables en nuestro texto, usando comillas invertidas ( `` ), el signo de pesos ( $ ) y las llaves ( {} ) .
// 6\. Imprimir resultadoconsole.log(`Escogiste: ${armaUsuario} \nLa Computadora eligio: ${armaComputadora}`);
console.log(resultadoPartida(armaUsuario, armaComputadora));
Bien, espero te haya gustado el tutorial y que fuera simple de entender.
¡Un abrazo Platzinauta! 🙋🏿♂️