¡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
while
ejecutara 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 if
yelse
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 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