Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

no se me ejecuta el codigo

tengo el codigo tal cual como esta en la explicacion y no se ejecuta

function aleatorio() {

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

    }

    function sortearNumeros(cantidad) {

        var secretos = {};
        var contador = 1;

        while (contador <= cantidad) {

            numeroAleatorio = aleatorio();
            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 < secreto.length; posicion++) {

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

                alert("Usted acerto");
                encontrado = true;
                break;
            }    

        }

        if (encontrado == false) {

            alert("Usted erro");

        }

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

    }

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

Buenas tardes, creo que los problemas del código pueden ser originados en la zona del loop while. Te dejo mi código para que lo puedas comparar. Espero haber sido de ayuda.

Saludos

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input />

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

    <script>

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

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

            while (contador <= cantidad) {

                console.log(numeroAleatorio);
                var numeroAleatorio = aleatorio();
                var encontrado = false;

                if (numeroAleatorio != 0) {
                    for (var posicion = 0; posicion < secreto.length; posicion++) {

                        if (numeroAleatorio == secreto[posicion]) {

                            encontrado = true;
                            break;
                        }
                    }

                    if (encontrado == false) {

                        secreto.push(numeroAleatorio);
                        contador++;
                    }

                }
            }
            return secreto

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

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

        var secreto = [];

        function verificar() {

            var encontrado = false;

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

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

                    alert("Acertaste");
                    encontrado = true;
                    break;
                }
            }
            if (encontrado == false) {
                alert("Erraste")

            }

            input.value = "";
            input.focus();
        }
        var button = document.querySelector("button");
        button.onclick = verificar;
    </script>
</body>

</html>
solución!

Hola Juan. Mirá, fijate bien cómo estas declarando en la función sortearNumeros "var secretos = {}", acordate que el array se declara con corchetes [], no llaves.

Luego declaras una variable secretos = sortearNumeros... Esa variable despues la utilizas en la función "verificar()". Fijate porque en la función, cuando llamas, llamas a "secreto", y tenes que llamar a tu variable "secretos".

Creo que con eso debería funcionar tu programa.