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

196
Vistas
¿Hay alguna forma de acceder al valor de retorno de una función después de ejecutarla?

Lo siento, no pude ser específico en el título de la pregunta. Intentaré explicarlo mejor aquí. Tal vez sea una pregunta realmente tonta, pero comencé javascript hace unos días y ahora estoy tratando de implementar un pequeño juego de piedra, papel o tijera con una interfaz de usuario. ,

básicamente hay una función gameRound(playerInput, computerInput) cuando ejecuto esta función devuelve 0,1 o -1 dependiendo de quién ganó esta ronda y si hay empate. Necesito ejecutar esta función SOLAMENTE cuando se activa un evento de clic en un botón en mi página, así que inicialmente esto es lo que hice:

 const btns = document.querySelectorAll(".buttons"); btns.forEach(btn => btn.addEventListener("click", () => { (gameRound(btn.id,computerPlay())) }));

en mi html:

 <button id="Rock" class="buttons"><strong>Rock</strong></button> <button id="Paper" class="buttons"><strong>Paper</strong></button> <button id="Scissors" class="buttons"><strong>Scissors</strong></button>

Este código funciona para rondas individuales, pero se supone que debo declarar un ganador que alcance las 5 victorias primero, así que tengo otra función, mainGame, que rastrea la cantidad de victorias para el jugador y la computadora en un ciclo de tiempo como este:

 function mainGame(){ let roundNum = 0; let playerWins = 0; let computerWins = 0; while(playerWins < 5 && computerWins < 5){ const btns = document.querySelectorAll(".buttons"); btns.forEach(btn => btn.addEventListener("click", () => { (gameRound(btn.id,computerPlay())) })); //let thisRound = gameRound(playerInput, computerPlay()); if (thisRound > 0){ playerWins ++; roundNum ++; }else if (thisRound < 0){ computerWins ++; roundNum ++; }else{ roundNum ++; } console.log(`Round: ${roundNum} \nPlayer: ${playerWins} \nComputer: ${computerWins}`); } const final = document.querySelector('#results-container'); if(playerWins > computerWins){ final.textContent = "You Won!"; }else{ final.textContent = "You Lose!"; } } mainGame();

Pero ahora no puedo acceder al valor de retorno de la función gameRound sin ejecutarla por segunda vez y estoy atascado, ¿hay una solución fácil y obvia que no puedo ver o tengo que cambiar toda mi lógica para este juego?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
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