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

223
Vistas
¿Cómo puedo hacer que setInterval() aumente en 1 en lugar de 12?

Mi juego tiene dos jugadores que obtienen números al azar, y la persona que tiene el número más grande obtiene 1 "ganancia". Mi bucle while es para el botón "tirar automáticamente", y en lugar de hacer clic en "tirar dados" cada vez, la tirada automática lo hará por ti hasta que un jugador gane == límite del juego # (bestof.value). No importa dónde coloque mi setInterval, aumenta un montón a la vez. Si bestof.value = 10, cada intervalo muestra al menos 10 victorias para un jugador a la vez.

checkBox.checked = marca de verificación de entrada que habilita la función de desplazamiento automático. Por lo tanto, este setInterval solo estará activo mientras el bucle de rotación automática esté activo.

De todos modos, ¿qué estoy haciendo mal?

 button.addEventListener("click", myFunction); function myFunction() { let random = Math.floor((Math.random() * 6) + 1); let random2 = Math.floor((Math.random() * 6) + 1); screenID.innerHTML = random; screenIDD.innerHTML = random2; if (random > random2){ winNumber.innerHTML = ++a; } else if(random2 > random){ winNumba1.innerHTML = ++b; } else { console.log("Draw"); } if (a > b){ winNumber.style.color = 'white'; winNumba1.style.color = 'black'; } else if(b > a){ winNumba1.style.color = 'white'; winNumber.style.color = 'black'; } else { winNumber.style.color = 'black'; winNumba1.style.color = 'black'; } if (checkBox.checked){ setInterval(myFunction, 2000) while(a < bestof.value && b < bestof.value){ myFunction(); }}; if (winNumba1.innerHTML == bestof.value){ winAlert.style.display = "flex"; console.log('winNumba1 wins!'); } else if (winNumber.innterHTML == bestof.value){ winAlert.style.display = "flex"; console.log('winNumber wins!'); } else {} };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Escribí una versión js simplificada de tu juego aquí ya que no tengo html a mano, pero estoy seguro de que puedes ajustarlo a tu entorno.

Diferencia principal: compruebo si alguien ganó y uso el return para detener la función. Si nadie ganó y la reproducción automática está activada, juego automáticamente después de 500 ms nuevamente.

 let playerA = 0 let playerB = 0 let autoPlay = true let bestOf = 3 function myFunction() { let random = Math.floor((Math.random() * 6) + 1); let random2 = Math.floor((Math.random() * 6) + 1); console.log("New Round " + random + " vs " + random2) if (random > random2) { playerA++ } else if (random2 > random) { playerB++ } else { console.log("Draw"); } if (playerA > playerB) { console.log("a is winning") } else if (playerB > playerA) { console.log("b is winning") } else { console.log("There has been a draw") } if (playerA == bestOf) { console.log('A won'); return } else if (playerB == bestOf) { console.log('B won'); return } if (autoPlay) { setTimeout(myFunction, 500) }; }; myFunction()

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