Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Me salen repetidos

no entiendo que esta mal, revise varias veces pero me sigue tomando números repetidos. agradecería una manito para terminar de entender que estoy fallando. Gracias

<meta charset="utf-8">
    <br>
        <h1>
            <font color="#800080">
                Juego Secreto V3.1
            </font>
        </h1>
        <h2>
            <font color="#07A981">
                Introduce un numero y verifica si acertaste
            </font>
        </h2>
        <input/>
        <button>
            Verificar
        </button>
        <script>
            function aleatorio(){
                return Math.round(Math.random()*10);
        }

        function sortearNumeros(cantidad){
            var secretos = [];
            var contador = 1;
            while (contador <= cantidad){

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

                if (numeroAleatorio != 0){

             for (var posicion = 0; posicion < secretos.legth; posicion++){
                                if (numeroAleatorio == secretos[posicion]){
                                    encontrado = true;
                                    break;
                                }
                            }
                           if (encontrado == false){
                            secretos.push(numeroAleatorio);
                            contador++;

                           }
                        }
                   //  secretos.push(numeroAleatorio);
            }

            return secretos
        }
           var secretos = sortearNumeros(8);

           console.log(secretos);

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

function verificar(){

      var encontrado = false;

      for(var posicion = 0; posicion < secretos.legth; posicion++){

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

            alert("FELICIDADES!!! Usted acertó");
            encontrado = true;
            break;
        }
    }
    if (encontrado == false){

    }
alert("LASTIMA :( | Usted erró")
        input.value = "";
        input.focus();
}
var button = document.querySelector("button");
button.onclick = verificar;
        </script>
    </br>
</meta>
1 respuesta

Hola, yo lo solucione solo cambiando la forma en la que se agregan los números aleatorios. Nosotros en la clase usabamos function aleatorio(){ return Math.round(Math.random()*10); }

PEro en mi caso fue más sencillo solo cambiarlo porfunction aleatorio(){ return Math.floor(Math.random()*10+1); }

El comando floor redondea hacia abajo, es decir, da valores enteros entre 0 y 9 por lo que al sumarle 1 ya genera números enteros entre 1 y 10. Con eso nos evitamos usar el último if relacionado al valor 0. Espero te sirva.