Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

230
Vistas
Tuve algunos problemas con el juego de piedra, papel o tijera para el proyecto Odin

principiante completo aquí y he estado haciendo el curso de fundamentos en Odin Project y más específicamente el juego de piedra, papel o tijera en javascript. He estado tratando de hacer la función del juego con bucles para repetir las rondas hasta que alguien gane y tenga algunos problemas. Mientras jugaba con los bucles y cambiaba de while a if y for, estuve a punto de rendirme y preguntar aquí. Sin embargo, hice que funcionara un poco, aunque no es del todo cierto, ya que no puedes cancelar el juego y en realidad no tiene 5 rondas, sino que utiliza un enfoque diferente. Este es mi código:

Editar: la penúltima oración fue básicamente mi pregunta, probé enfoques para hacer rondas, hacer rondas variables y luego ponerlo en bucle for, sin embargo, el bucle cuenta las rondas hasta cinco sin asegurarse de que el jugador y la puntuación de la computadora tengan alcanzaron su objetivo, y el hecho de que olvidé agregar la opción de empate. Intenté arreglar eso agregando condicionales, pero se complicó muy rápido y me perdí, lo borré e hice esto. La opción de cancelar nunca se me ocurrió hasta que comencé a hacer esta pregunta.

 let playerScore = 0; let computerScore = 0; // gives a random value from the array function computerPlay() { let choice = ['rock', 'paper', 'scissors']; let randomPlay = Math.floor(Math.random() * choice.length); return choice[randomPlay] } // plays a round of a game function round() { let computerChoice = computerPlay(); let playerChoice = prompt('What do you choose?', ''.toLowerCase()); if (playerChoice === 'rock' & computerChoice === 'paper') { computerScore += 1; alert('You lose, paper beats rock!'); } else if (playerChoice === 'paper' & computerChoice === 'scissors') { computerScore += 1; alert('You lose, scissors beat paper!'); } else if (playerChoice === 'scissors' & computerChoice === 'paper') { computerScore += 1; alert('You lose, rock beats scissors!'); } else if (playerChoice === 'rock' & computerChoice === 'scissors') { playerScore += 1; alert('You win, rock beats scissors!'); } else if (playerChoice === 'paper' & computerChoice === 'rock') { playerScore += 1; alert('You win, paper beats rock!'); } else if (playerChoice === 'scissors' & computerChoice === 'paper') { playerScore += 1; alert('You win, scissors beat paper!'); } if (playerScore >= 3) { alert('You win the game!') } else if (computerScore >= 3) { alert('Computer wins the game!') } } //repeats rounds until someone wins the game function game() { for (i = 1; playerScore < 3 && computerScore < 3; i++) { round(); } } game();

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Recomendaría usar un sistema de matriz para Rock paper scissor, ya que es más conciso y rápido que usar bucles.

 const checker_arr = [['Tie', 'Lost', 'Won'],['Won', 'Tie', 'Lost'],['Lost', 'Won', 'Tie']];
  • 0 es roca
  • 1 es papel
  • 2 es tijera

Entonces, si el usuario elige 0 (que es roca) y la computadora elige 2 (tijera), entonces el usuario gana.

Github: mira esto para ver el código en vivo

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda