Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

172
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda