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

155
Vistas
¿Hacer "rondas" en un juego de piedra, papel o tijera?

Sé que este es un juego muy popular/sencillo de hacer, pero tengo algunos problemas. Hice un juego de piedra, papel o tijera en javascript y logré que funcione de modo que le indique al jugador que elija piedra, papel o tijera, haga que la computadora elija una opción al azar y un medio para decir "usted pierde" o "usted gana". El problema es que estoy obligado a hacer 5 rondas. Ese es el problema que estoy teniendo. Yo, por alguna razón, parece que no puedo obtener el código para avisar al usuario 5 veces. Solo le pregunta al usuario una vez y ejecuta el mismo código cada vez. Mi código es el siguiente:

 function playRound(playerSelection) { let computerSelection = getComputerSelection(); if (playerSelection == "rock") { addToList(playerSelection, computerSelection); if (computerSelection == "rock") { result = "It's a tie"; } else if (computerSelection == "paper") { result = "You lost! Paper beats Rock"; computerScore++; } else { result = "You won! Rock beats Scissors"; playerScore++; } } else if (playerSelection == "paper") { addToList(playerSelection, computerSelection); if (computerSelection == "rock") { result = "You won! Paper beats Rock"; playerScore++; } else if (computerSelection == "paper") { result = "It's a tie"; } else { result = "You lost! Scissors beats Paper"; computerScore++; } } else { addToList(playerSelection, computerSelection); if (computerSelection == "rock") { result = "You lost! Rock beats Scissors"; computerScore++; } else if (computerSelection == "paper") { result = "You won! Scissors beats Rock"; playerScore++; } else result = "It's a tie"; } h1.textContent = result; player.textContent = playerScore; computer.textContent = computerScore; game(); } function game() { if (playerScore === 5) { end.style.display = "block"; message.textContent = "You Won!"; } else if (computerScore === 5) { end.style.display = "block"; message.textContent = "You Lost!"; } }

Agradecería cualquier ayuda o dirección que se dé. He intentado poner mi función "playRound" fuera del bucle, pero me da el mismo problema. ¿Qué haría que apareciera dos veces?

¡Gracias!

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

0

No soy un experto en JS, así que corrígeme si me equivoco, pero lo que parece ser el caso es que esta variable:

 const playerSelection = window.prompt("Enter your choice: ").toLowerCase();

solo se inicializa una sola vez con el retorno de esa función. (porque está fuera de cualquier función) Acceder a la variable solo recuerda su valor con el que se inicializó, lo que hace que el bucle principal se ejecute una y otra vez solo con ese valor inicial.

reemplazando esa línea con algo como:

 function getPlayerSelection(){ return window.prompt("Enter your choice:").toLowerCase() }

y reemplazar cualquier lugar donde use playerSelection con getPlayerSelection() debería solucionar este problema.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto se debe a que está solicitando el aviso del jugador solo una vez, es decir, está fuera del método playRound. Intente mover el siguiente fragmento al método de ronda.

 const computerSelection = computerPlay();

const playerSelection = window.prompt("Ingrese su elección: ").toLowerCase();

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