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

[Sugerencia] Sugiero quitar la primera función aleatorio

<meta charset="UTC-8">

<label for="numero">Ingrese número entero: </label>
<input type="number" id="numero" name="numero"><br><br>
<button onclick = "verificar()">Verificar numero secreto</button>

<script>

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

        while(contador <= cantidad) { 
        secretos.push(Math.round(Math.random()*10)+1);                                                                                                                                            
contador++;
        } 
        return secretos;
    }

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

    numero.focus();

    function verificar() {
        var num = document.getElementById("numero").value;
        var encontrado = false;
        if (num === '') {
            alert("Favor de ingresar un entero.");
            return;
        }

        num = parseInt(num);
        for(var posicion = 0; posicion < secretos.length; posicion++) {
            if (num == secretos[posicion]) {
                alert("Acertó.");
                encontrado = true;
                break;
            }
        }
        if (encontrado == false) {
            alert("No es su día de suerte, usted no acertó.");
        }
        numero.value = "";
        numero.focus();
    }

</script>

En verdad que este tema si me creo confusión porque se comienza a complicar con tantas funciones y condicionales interactuando. Les comparto mi codigo porque elimine una funcion y puse lo que hacia directo al push de modo que se vea por lo menos una funcion menos y entenderlo mas facil, aunque para mi sigue estando complicado para novatos.

3 respuestas

Si así es, se puede ahorrar la función de números aleatorios, y puede ser complicado para novatos ya que va avanzando rápido y deben practicar mucho para agilizar mas la lógica y luego dar a soluciones mas complejas.

Siempre que tengan duda ocupen el foro, siempre encontraran explicaciones diferentes o tips nuevos de otros compañeros con mas experiencia.

Excelente aportación Angel.

Hola Angel, tengo una duda respecto a una parte de tu codigo:

    secretos.push(Math.round(Math.random()*10)+1);        

Porqué el "+1"? Es para que no exista el 0?,

Lo que sucede es que segun lo que he leido fuera de este bootcamp si no le añades el + 1 los numeros aleatorios serian del 0 al 9.

Otra alternativa seria ponerle 11 pero el + 1 es como lo hacen por reglas de convencion.

Solo me lo aprendi asi siempre que uso random.