2

Piedra, papel y tijera: Paso a paso

Carlos
monoald
32833

¡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!

  1. 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'];
    
    
  2. 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)];
    }
    
    
  3. 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);
    
    
  4. 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ónprompt().
    • 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 ciclowhile ejecutara su código pidiendo de nuevo por un arma hasta que esta sea valida.
    • Adicionalmente, usaremos el métodotoLowerCase(), 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();
    }
    
    
  5. 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! :)';
            }
        }
    }
    
    
  6. 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! 🙋🏿‍♂️

Escribe tu comentario
+ 2