Piedra, Papel y Tijeras en JavaScript

Shraddha Paghdar 12 octubre 2023
Piedra, Papel y Tijeras en JavaScript

Cada desarrollador comienza con el mundo Hello en algún momento de su vida. Piedra, papel o tijera es uno de los desarrolladores de juegos populares que construyen mientras aprenden cualquier lenguaje de programación. Pero escribir varios casos se convierte en un dolor de cabeza para los desarrolladores. Entonces, en este artículo, aprenderemos la lógica detrás del juego de piedra, papel y tijera.

Piedra, papel y tijeras en JavaScript

Es un juego interesante y popular que juegan los niños. Y también su lógica. Así que primero entendamos la regla de este juego.

  1. Un jugador que elige jugar la piedra golpeará a otro jugador que eligió las tijeras porque la piedra aplasta las tijeras o, a veces, achaflana las tijeras.
  2. Un jugador que elige jugar piedra pierde ante otro que jugó papel porque el papel cubre la piedra.
  3. Un jugador que decida jugar papel perderá ante un jugador de tijeras porque las tijeras cortan papel.

Entonces las reglas se borran; Ahora, escribamos la lógica del juego. Hemos creado un objeto con clave como opción individual y valores como segunda opción. Por ejemplo, si la entrada del usuario es roca y la elección de la computadora también es roca, entonces es un empate.

let choicesObject = {
  'rock': {'rock': 'draw', 'scissor': 'win', 'paper': 'lose'},
  'scissor': {'rock': 'lose', 'scissor': 'draw', 'paper': 'win'},
  'paper': {'rock': 'win', 'scissor': 'lose', 'paper': 'draw'}
}

Ahora podemos usar el objeto anterior como una regla global y predecir el resultado de un juego usando la función.

function checker(input) {
  var choices = ['rock', 'paper', 'scissor'];
  var num = Math.floor(Math.random() * 3);

  let computerChoice = choices[num];
  let result

  switch (choicesObject[input][computerChoice]) {
    case 'win':
      result = 'YOU WIN';
      break;
    case 'lose':
      result = 'YOU LOSE';
      break;
    default:
      result = 'DRAW';
      break;
  }
  console.log(result);
  document.getElementById('result').textContent = result;
}

En la función anterior, tomamos la elección del usuario como entrada y comparamos la entrada del usuario con la elección generada por computadora usando una caja de cambio. Si no se cumple ninguna de las condiciones, se considera empatado. Ahora tomemos la elección del usuario e imprimamos el resultado.

<button onClick="checker('rock')">Rock</button>
<button onClick="checker('paper')">Paper</button>
<button onClick="checker('scissor')">Scissor</button>
<p id="result">
</p>

Cuando ejecute el código anterior, imprimirá algo como esto. El resultado puede variar según la elección de la computadora.

Producción :

YOU LOSE
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn