Una solución sería: //Variables let seleccionCorrecta = false; let numeroMaximoPosible; let numeroSecreto; let numeroUsuario = 0; let intentos; let maximosIntentos;
while (!seleccionCorrecta) { numeroMaximoPosible = parseInt(prompt("Si quieres jugar entre 1 y 10, digita 10. Entre 1 y 100, digita 100 o entre 1 y 1000, digita 1000")); numeroSecreto = Math.floor(Math.random() * numeroMaximoPosible) + 1; intentos = 1; maximosIntentos = 1; if (numeroMaximoPosible == 10) { maximosIntentos = 3; seleccionCorrecta = true; } else if (numeroMaximoPosible == 100) { maximosIntentos = 6; seleccionCorrecta = true; } else if (numeroMaximoPosible == 1000) { maximosIntentos = 12; seleccionCorrecta = true; } else { alert('Digite solamente 10, 100 o 1000'); } }
while (numeroUsuario != numeroSecreto) {
numeroUsuario = parseInt(prompt(Me indicas un número entre 1 y ${numeroMaximoPosible} por favor:
));
console.log(typeof (numeroUsuario));
if (numeroUsuario == numeroSecreto) {
//Acertamos, fue verdadera la condición
alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces'}`);
} else {
if (numeroUsuario > numeroSecreto) {
alert('El número secreto es menor');
} else {
alert('El número secreto es mayor');
}
//Incrementamos el contador cuando no acierta
//intentos = intentos + 1;
//intentos += 1;
intentos++;
//palabraVeces = 'veces';
if (intentos > maximosIntentos) {
alert(`Llegaste al número máximo de ${maximosIntentos} intentos`);
break;
}
//La condición no se cumplió
//alert('Lo siento, no acertaste el número');
}
}