Hola con todos, quise modificar un poco el código para que de una cantidad de intentos igual a cantidad de elementos que va tener la lista (8 elementos, 8 intentos) la idea es que si se acaba los turnos, solamente va mostrar los que se pudieron adivinar hasta el momento, pero por algún motivo se ya no me deja ingresar un valor más después de adivinar el primer número, ya no me deja seguir adivinando a pesar de tener más intentos. Dejo todo mi código, es la misma del video solo con una pequeña modificación. Gracias de antemano
<meta charset="UTF-8">
<input/>
<button> Verificar si acertó con el secreto</button>
<script>
function saltarLinea(){
document.write("<br><br><br>");
}
function imprimir(frase){
document.write(frase);
saltarLinea();
}
function aleatorio(){
return Math.round(Math.random()*10);
}
function sortearNumeros(cantidad){
var secretos = [];
var contador = 1;
while(contador <= cantidad){
var numeroAletorio = aleatorio();
console.log(numeroAletorio);
var encontrado = false; // trigger
if (numeroAletorio !=0) {
for(var posicion = 0; posicion < secretos.length; posicion++){ // este for recorrerá la cantidad del array que tenga en ese momento, puede ir hasta el 4 en este caso debido a la linea 47.
if (numeroAletorio == secretos[posicion]) {
encontrado = true;
break;
}
}
if (encontrado == false) {
secretos.push(numeroAletorio);
contador++;
}
}
}
return secretos;
}
var secretos = sortearNumeros(parseInt(prompt("Ingrese la cantidad de número aleatorios")));
console.log(secretos);
var input = document.querySelector("input");// será el comunicador entre código JS y código HTML
input.focus();
function verificar(){
var encontrado = false;
var intentos = secretos.length;
var contador = 1;
while( contador <= intentos) {
for(var posicion = 0; posicion < secretos.length; posicion++){
if (parseInt(input.value) == secretos[posicion]) {
alert("Usted acertó");
alert("Muy bien, número encontrado --> " + input.value + ". Te quedan " + (intentos-1) + " intentos")
intentos--;
encontrado = true;
}
input.value = "";
input.focus(); // cursor se focaliza en esa casilla (input)
}
if(encontrado == false ){
alert("Usted erró, le quedan " + (intentos-1) + " intentos.");
intentos--;
input.value = "";
input.focus(); // cursor se focaliza en esa casilla (input)
}
if (intentos == 0) {
imprimir("****Terminó todos sus turnos****")
}
input.value = "";
input.focus(); // cursor se focaliza en esa casilla (input)
}
}
var button = document.querySelector("button");
button.onclick = verificar; // sin parentesis para que de todo el código dentro de la función, mas no la respuesta. Es decir para que no lo ejecute.
</script>