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

[Duda] porque me siguen saliendo numero repetidos?

<meta charset="utf-8">

<input/>
<button>Verificar si acerto con el secreto</button>


<script>

function aleatorio(){

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

function sortearNumero(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.length; posicion++){
        if (numeroAleatorio == secretos[posicion]){
            encontrado == true;
            break;
        } // fin if for
    } // fin for

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

        } 

    } // fin primer if    
} // fin while

    return secretos;
}

var secretos = sortearNumero(4);

console.log(secretos);

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 acerto");
        encontrado = true;
        break;
        }

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

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

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


</script>
2 respuestas
solución!

Que tal Andrés. El programa sigue generando números repetidos porque no le estás asignando el valor TRUE a la variable "encontrado". Estas usando los signos igual doble (==) como comparación y no como asignación.

Está así en tu código:

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

Debe de ser asi:

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

Saludos.

muchas gracias.