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

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

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 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