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)
3
respuestas

[Bug] No se porque mi código hace que mi computadora se congele

<script>

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


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

            while(contador<=cantidad){
                var numeroAleatorio = aleatorio();
                console.log (numeroAleatorio);
                var encontrado = false;

                for (var posicion = 0; posicion < secreto.length; contador++){
                    if (numeroAleatorio == secreto[posicion]){
                        encontrado = true;
                        break;
                    }
                }

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

            }

            return secreto

        }



        var secreto = sorterodeNumeros(4);

        console.log(secreto);

        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("ding ding ding acertastes");
                    encontrado =true;
                    break;

                }

            }

            if (encontrado == false) {

                alert("jajajaja todo menso");

            } 

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

        }

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


    </script>
3 respuestas
solución!

En esta linea if (encontrado = false) le estas asignando false y creo que lo toma como if(false) entonces nunca entra, por lo que nunca aumenta el contador y por lo que nunca termina ese ciclo. Cambialo a if(encontrado == false)

Hola Saul,

Adicional a lo observado por Santiago, también noté que hay un error en uno de los ciclos for:

Has colocado: "contador++" en vez de "posicion++"

En la parte: for (var posicion = 0; posicion < secreto.length; contador++)

Debería ser: for (var posicion = 0; posicion < secreto.length; posicion++)

Tanto a Santiago como a Oscar les quiero agradecer por las observaciones, gracias a sus observaciones ya pude ejecutar bien el programa, les agradezco mucho.