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

NO ME FUNCIONA :(

Cuando pruebo en la consola los elementos del array se me repiten igual.

<meta charset="UTF-8">

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

<script>

     function aleatorio() {

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

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

         while (contador <= cantidad) {
             var numeroAleatorio = aleatorio();
             console.log(numeroAleatorio)
             var encontrado = false;
             for (var posicion = 0; posicion < secreto.lenght; posicion++) { //para que no se repitan los números en los arrays
                 if (numeroAleatorio == secreto[posicion]) {
                     encontrado = true;
                     break;
                 }
         }

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

         }

         return secreto

     }


    var secreto = sortearNumeros(4);  //arrays
    console.log(secreto)

    var input = document.querySelector("input"); // El input de html deja un espacio en la pantalla para que el usuario escriba un número ---> El document.querySelector es un comunicador entre html y js
    input.focus(); //para no tener necesidad de poner el cursor yo

    function verificar() {

        var encontrado = false;
        for(var posicion = 0; posicion < secreto.length; posicion++) { //(declaración de la variable; condición;sumarizador de la variable). El .lenght sirve para decir los elementos que tiene el array, si quiero agregar elementos dentro de [] no tengo que modificarlo manualmente.

        if (parseInt(input.value) == secreto[posicion]) {
        alert("Usted acertó");
        encontrado = true;
        break; //cuando entre al primer valor correcto ya no necesita verificar los otros valores

        } 

}
        if (encontrado == false) {
            alert("Usted erró");
        }


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

    }

    var button = document.querySelector("button");
    button.onclick = verificar; //no le pongo los parentesis para que no ejecute el verificar de entrada sino que lo ejecute cuando haga click en el botón.

</script>

6 respuestas
solución!

Hola compa! En secreto.lenght hay un error minimo de tipeo. Y tu juego tiene la trampa de que va a salir el 0 jaja. Espero ser de ayuda. Saludos!

A mi si me funciona, esto es lo que me aparece en consola: Array(4) [ 7, 1, 10, 8 ] Y a ti que es lo que te aparece n consola?

Ay, muchas gracias a ambos. Sí, efectivamente estaba mal escrito el length (habían dicho que tengamos cuidado con eso y en eso me equivoco jaj). Al estar mal escrito eso no me funcionaba la iteración for, por lo que si estaba repetido el número igualmente me lo agregaba a la lista.

Graciasssss!

Gracias por compartir, me fue de ayuda para comparar mi código.

A mi también me ayudo a corregir mi código y prestar mas atención! Gracias!

Muchas gracias efectivamente tenia el mismo error y no caia en cuenta