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

Duda sobre arreglo SECRETOS []

Tengo el código practicamente igual, solo q usé 2 for, en pocas ocaciones me devuelve un arreglo de 3 elementos, no deberia devolver siempre 4? si se repite un numero deberia volver a buscar otro hasta completar 4 elementos no? nose en que falla mi codigo si alguien me da una mano gracias.

<meta charset="utf-8">

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

<script>

    function aleatorio() {
        return Math.round(Math.random() * 10);
    }

    function sortearNumeros(cant) {
        var secretos = [];
        var encontrado;
        for (var i = 0; i < cant; i++) {
            var numeroAleatorio = aleatorio();
            console.log(numeroAleatorio);
            encontrado = false;
            for(var posicion = 0; posicion < secretos.length; posicion++) {
                if(numeroAleatorio == secretos[posicion]){
                    encontrado = true;
                    break;
                }
            }
            if(!encontrado) {
                secretos.push(numeroAleatorio);
            }
        }
        return secretos;
    }
    var secretos = sortearNumeros(4);

    console.log(secretos);

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

    function verificar() {
        var encontrado = false;
        for(var i = 0; i < secretos.length; i++) {
            if(parseInt(input.value) == secretos[i]) {
                alert("Usted acertó");
                encontrado = true;
                break;
            }
        }
        if(!encontrado) {
            alert("Usted erró");
        }

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

    }

    var button = document.querySelector("button")

    button.onclick = verificar;


</script>
2 respuestas

Ahí lo pude solucionar nose si está bien, cuando verifico que el número se repite , disminuyo el indice del primer for en 1.

<meta charset="utf-8">

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

<script>

    function aleatorio() {
        return Math.round(Math.random() * 10);
    }

    function sortearNumeros(cant) {
        var secretos = [];
        var encontrado;
        var numeroAleatorio;
        for (var i = 0; i < cant; i++) {
            numeroAleatorio = aleatorio();
            console.log(numeroAleatorio);
            encontrado = false;
            for(var posicion = 0; posicion < secretos.length; posicion++) {
                if(numeroAleatorio == secretos[posicion]){
                    encontrado = true;
                    i--;
                    break;
                }
            }
            if(!encontrado) {
                secretos.push(numeroAleatorio);
            }
        }
        return secretos;
    }
    var secretos = sortearNumeros(4);

    console.log(secretos);

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

    function verificar() {
        var encontrado = false;
        for(var i = 0; i < secretos.length; i++) {
            if(parseInt(input.value) == secretos[i]) {
                alert("Usted acertó");
                encontrado = true;
                break;
            }
        }
        if(!encontrado) {
            alert("Usted erró");
        }

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

    }

    var button = document.querySelector("button")

    button.onclick = verificar;


</script>

¡Hola Marcos! ¡Deseo que estés bien!

Probe tu codigo aqui y esta excelente. ¡Muchas Felicidades!

¡Gracias por compartir tu código con nosotros, nos alegra mucho ver que colocas en practica tu aprendizaje, la cual es muy fundamental para consolidar tus nuevos conocimientos.

¡Continua con ese mismo entusiasmo y no te desanimes!

¡Te deseo mucho éxito en tus estudios y recuerda que aquí estaremos para apoyarte!

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!