Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

No entiendo el ejercicio y como funciona la estructura

Realmente no entiendo este ejercicio.

No entiendo muy bien la estructura del for dentro del while y como funciona para evitar repeticiones.

Alguien que me pueda ayudar a aclarar un poco?

Gracias

3 respuestas
function generarNumerosAleatorios(cantidad, maximo) {
  var numeros = []; // Creamos un array vacío para guardar los números generados
  for (var i = 0; i < cantidad; i++) { // Iteramos la cantidad de veces especificada en el parámetro cantidad
    var nuevoNumero;
    do { // Utilizamos un ciclo while para asegurarnos de que el número generado no esté ya en el array
      nuevoNumero = Math.floor(Math.random() * maximo) + 1; // Generamos un número aleatorio del 1 al maximo
    } while (numeros.indexOf(nuevoNumero) !== -1); // Verificamos si el número generado ya está en el array, y repetimos el ciclo mientras siga estando
    numeros.push(nuevoNumero); // Si el número no está en el array, lo agregamos al final
  }
  return numeros; // Devolvemos el array de números generados
}

// Ejemplo de uso: generar 5 números aleatorios del 1 al 10
var numerosAleatorios = generarNumerosAleatorios(5, 10);
console.log(numerosAleatorios);

En este ejemplo, utilizamos un ciclo for para iterar la cantidad de veces especificada en el parámetro cantidad. Dentro del ciclo for, utilizamos un ciclo do-while para generar números aleatorios y asegurarnos de que no estén ya en el array numeros. Si el número generado ya está en el array, el ciclo do-while se repite hasta que se genere un número nuevo que no esté en el array. Finalmente, si el número es nuevo, se añade al array utilizando el método push().

Espero que te sea útil este ejemplo. ¡Que tengas un buen día!

Muchas gracias, Jose!

<meta charset="UTF-8">

<h1>PROGRAM NUMEROS SECRETOS</h1>
<h3 style="color: darkblue;">Digita tu numero por favor...</h3>

<input />
<button>Verificar si acertó con el secreto</button>

<script>

    function aleatorio() {

        return Math.round(Math.random() * 10);

    }

    function sortearNumeros(cantidad) {
        var secretos = [];
        var contador = 1;

        while (contador <= cantidad) {
            var numeroAleatorio = aleatorio();
            console.log(numeroAleatorio);
            var encontrado = false;
            for (var posicion = 0; posicion < secretos.length; posicion++) {
                if (numeroAleatorio == secretos[posicion]) {
                    encontrado = true;
                    break;
                }

            }

            if (encontrado == false) {
                secretos.push(numeroAleatorio);
                contador++;
            }

        }

        return secretos

    }


    var secretos = sortearNumeros(4);
    console.log(secretos)


    var input = document.querySelector("input");
    input.focus();

    function verificar() {

        var encontrado = false;

        for (var posicion = 0; posicion < secretos.length; posicion++){

            if (parseInt(input.value) == secretos[posicion]) {

                alert("Usted acertó");
                encontrado = true;
                break;
            }

        }

        if (encontrado == false) {

            alert("Usted erro");

        }

        input.value = "";
        input.focus();
    }

    var button = document.querySelector("button");
    button.onclick = verificar;


</script>

Te dejo mi código a ver si te ayuda saludos .....