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

Juego secreto V3 - sin repetidos

El video de esta clase, el profesor termina preguntando como hacer para que el array no guarde numeros repetidos, aquí comparto mi propuesta:

<!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>JUEGO SECREO V2</title>
</head>
<body>
    <input/>
    <button>Verificar si acertó con el secreto</button>
    <script>
        function aleatorio(){
            return Math.round(Math.random()*10);
        }

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


            while(contador<=cantidad){
                var igual=false;
                numeroAleatorio=aleatorio();
                for(var i=contador-1;i>=0;i--){
                    if(secretos[i]==numeroAleatorio){
                        igual=true;

                    }
                }
                if(igual==false){
                    secretos.push(numeroAleatorio);
                    contador++;                    
                }


            }
            return secretos;

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

        var input=document.querySelector("input");
        input.focus();
        function verificar(){
            var encontrado=false;
            for(var posicion=0; posicion<secretos.length;posicion++){

                if(parseInt(input.value)==secretos[posicion]){
                    alert("Usted acertó");
                    encontrado=true;
                    break;
                }
            }
            if(encontrado==false){
                alert("usted erró")
            }


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

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

    </script>

</body>
</html>
1 respuesta

¡Hola Gustavo!

Para evitar que el array guarde números repetidos, puedes utilizar el método includes para verificar si el número aleatorio ya está presente en el array secretos. Si el número ya está presente, puedes generar otro número aleatorio hasta que obtengas uno que no esté repetido.

Aquí te muestro cómo puedes implementar esta solución en tu código:

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

    while(contador<=cantidad){
        var numeroAleatorio=aleatorio();
        
        if(!secretos.includes(numeroAleatorio)){
            secretos.push(numeroAleatorio);
            contador++;                    
        }
    }
    
    return secretos;
}

En esta solución, utilizamos el método includes para verificar si numeroAleatorio ya está presente en secretos. Si el número no está presente, lo agregamos al array secretos y aumentamos el contador. Si el número ya está presente, simplemente generamos otro número aleatorio.

Espero que esta solución te ayude a evitar números repetidos en tu juego secreto. ¡Buena suerte!

Espero haber ayudado y buenos estudios!

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