Estoy usando el mismo código que muestran en la clase, pero en mi caso la función "for" no evita que se repitan los números generados de forma aleatoria.
<meta charset="UTF-8">
<h1> Adivínanza</h1>
<input/>
<button>Verificar si acertó</button>
<script>
function aleatorio () {
return Math.round(Math.random()*10);
}
function sortearnumero (cantidad) {
var secretos = [];
var contador = 1;
while(contador <= cantidad) {
numeroaleatorio = aleatorio();
console.log(numeroaleatorio)
var encontrado = false;
for (var posicion = 0; posicion < secretos.lenght; posicion++) {
if (numeroaleatorio == secretos[posicion]) {
encontrado = true;
break;
}
}
if (encontrado == false) {
secretos.push(numeroaleatorio);
contador++;
}
}
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("acertó");
encontrado = true;
break;
}
}
if (encontrado == false)
alert("error");
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verificar;
</script>