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

Inconvenientes con v2 de adivinar numeros secretos (array)

Este es mi codigo, por algun motivo mi programa se crashea cuando lo abro en la web.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text">
    <button>Verificar secreto</button>
    <script>

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

        function validar() {
            let correcto = false;

            for (let i = secretos.length - 1; i >= 0; i--) {
                if (secretos[i] === parseInt(adivinanza.value)) {
                    correcto = true;
                    alert("valido")
                    break;
                } 
            }

            if (correcto === false) {
                alert("invalido")
            }

            adivinanza.value = "";
            // focus hace no se necesite hacer click devuelta en el input
            adivinanza.focus();
        }

        function secretosRandom(tamanho){
            let secretos = [];

            for (let i = 0; i < sizeArray; i++) {
                let numAleatorio = nAleatorio();
                //let repetido = false;

                for (let j = 0; j <= secretos.length; j++) {
                    if (secretos[j] === numAleatorio) {
                        console.log(secretos[i],nAleatorio,"va queriendo");
                    } else {
                        secretos.push(numAleatorio);
                    }
                    //console.log("Valor de secretos.length: " + secretos.length);
                    //console.log("Valor de J: " + j);


                    // if (secretos[i] === secretos[j]) {
                    //     secretos.pop(secretos[i]);
                    // }
                }
                console.log(secretos);
            }
        };


        // que el usuario introduzca cantidad de elementos
        let sizeArray = parseInt(prompt("Ingrese tamanho array "));
        let adivinanza = document.querySelector("input");
        let boton = document.querySelector("button");

        secretosRandom(sizeArray);
        adivinanza.focus();
        boton.onclick = validar;



    </script>
</body>
</html>
3 respuestas

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

¡Muchas Felicidades!

¡Gracias por compartir tu código con nosotros! Nos alegra mucho ver tu avance en las prácticas, éstas te darán un mayor fundamento en el aprendizaje. ¡Continua con ese mismo entusiasmo y no te desanimes!

En lo esencial, para agilizar el tiempo de respuesta que damos a ustedes, estamos priorizando el foro para postear las dudas como: errores, bugs y cualquier otro problema referente a los cursos.

En cambio, si deseas compartir tu código, ideas o actividades dispusimos en Discord un canal exclusivo para ese fin (⛓┇comparte-tu-codigo-logica) Allí, tus compañeros de estudios podrán ayudarte compartiendo conocimientos. ¡Esta interacción es muy importante para la participación de los alumnos y puede ayudarte a expandir tu red de contactos!

Te dejo éste link que muestra donde puedes compartir tus actividades

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

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

Hola, no estaba compartiendo el codigo sin mas, era un post con duda, el programa se crashea cuando lo ejecuto.

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

Disculpa no leí bien, Ok, probé tu código aqui y realmente se crashea, porque tienes varias sentencias escritas incorrectamente, en la imagen siguiente te muestro varias de ellas:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Lo correcto debería ser:

        function secretosRandom(tamanho){
            let secretos = [];
            let contador = 1;

            while(contador <= tamanho) {
                let numAleatorio = nAleatorio();
                let repetido = false;

                if (numAleatorio != 0){
                    for (let j = 0; j < secretos.length; j++) {
                        if (secretos[j] === numAleatorio) {
                            console.log(secretos[j],nAleatorio,"va queriendo");
                            repetido = true;
                            break;
                        }
                    }
                    if ( repetido === false) {
                        secretos.push(numAleatorio);
                        contador++;
                    }
                }
                    //console.log("Valor de secretos.length: " + secretos.length);
                    //console.log("Valor de J: " + j);
                    // if (secretos[i] === secretos[j]) {
                    //     secretos.pop(secretos[i]);
                    // }
            }
                console.log(secretos);
                return secretos
        }

A continuación te muestro en otra imagen otro error que vi: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Lo correcto debería ser:

let secretos = secretosRandom(sizeArray);

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

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