¡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 elegir const 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.
- Para pedir el arma al usuario usaremos la función
prompt(). - Con el método de los arrays
some(), haremos la validación de que el arma ingresada es valida. - En caso de que el arma sea inválida, el ciclo
whileejecutara su código pidiendo de nuevo por un arma hasta que esta sea valida. - Adicionalmente, usaremos el método
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 pedir el arma al usuario usaremos la función
-
Para saber quien gano, crearemos otra función para revisar el resultado dentro de todas las posibles opciones. Usaremos condicionales
if,else ifyelsepara 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 resultado console.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! 🙋🏿♂️
Curso Básico de JavaScript


