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

192
Vistas
¿Cómo evitar que una condición se repita?

Tengo que codificar un juego de bingo de consola para JavaScript. Es uno de algunos ejercicios que tengo que hacer antes de un Bootcamp del que estaré participando, así que tomen en cuenta que soy novato. Por si alguien no conoce el juego:

  • Tendrá una "tarjeta" que muestra 15 números (no repetidos y aleatorios)
  • En cada turno se mostrará un número aleatorio (bola de bingo).
  • Los números van del 1 al 90, por lo que tanto las bolas como los cartones de bingo tendrán estos números.
  • Cuando una bola tiene el mismo número que uno de los números de su tarjeta, el número de su tarjeta se cambiará a una 'X'.

Ahora que lo expliqué, mi problema es el siguiente: tengo una función para generar una bola con un número aleatorio en cada turno. Para saber si un número ya salió o no, he creado una matriz para empujar los números que ya salieron. De esta manera podemos hacer un bucle con una condición if para verificar si la bola tiene el mismo valor que el número de arrays[i]. La forma en que lo hice, comienza bien, pero termina arruinando la consola de Chrome... tan cerca como llega a tener los 90 números en la matriz, comienza a iterar la matriz y generar números aleatorios hasta que encuentra los últimos números restantes.

Pegaré la parte del código de la que estoy hablando aquí debajo.

 function bingo(){ console.table(bingoCard); bombo(); for (let i = 0; i < bingoCard.length; i++){ if (bola === bingoCard[i].number){ bingoCard[i].number = 'X'; bingoCard[i].matched = true; } } continuar = confirm('¿Continuar?'); if (continuar === true){ console.table(bingoCard); bingo(); }else { return 'Hasta la próxima'; } } function randomNum(){ let min = 1; let max = 90; return Math.floor(Math.random() * (max - min) + min); } function bombo(){ bola = randomNum(); console.log(+ bola + 'antes de bucle'); //test for (let i = 0; i < numbersOut.length; i++){ if (bola === numbersOut[i]){ bingo(); } } numbersOut.push(bola); console.log(numbersOut); alert('Ha salido el número ' + bola); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En su lugar, puede crear una matriz con números del 1 al 90 y mezclarla al azar.

 function shuffleArray(array) { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } }

https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Modern_method - si quieres entender este método

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