Comparto una posible solución al ejercicio planteado:
alert("Bienvenido a la aplicacion adivina el número");
// Captura los límites ingresados por el usuario
let numeroMaximo = +prompt('Ingresa el límite máximo del número a adivinar');
let numeroMinimo = +prompt('Ingresa el límite mínimo del número a adivinar');
let intentosMax = +prompt('Ingresa el número máximo de intentos para adivinar el número');
// Genera un número aleatorio entre los límites ingresados
let numeroSecreto = Math.floor(Math.random() * (numeroMinimo - numeroMaximo + 1)) + numeroMaximo;
// Captura el primer número ingresado por el usuario
let mensaje = `Ingresa un número entre ${numeroMinimo} y ${numeroMaximo} por favor`;
let numeroUsuario = +prompt(mensaje);
let intentos = 1;
// Mientras el número ingresado no sea un número
while (isNaN(numeroUsuario)) {
alert("El numero ingresado no es un número");
numeroUsuario = +prompt(mensaje);
}
// Mientras el número ingresado no sea el número esperado y el número de intentos no supere el límite
while (numeroUsuario != numeroSecreto && intentos < intentosMax) {
if (numeroUsuario > numeroMaximo || numeroUsuario < numeroMinimo) {
alert(`El numero ingresado debe estar entre ${numeroMinimo} y ${numeroMaximo}`);
} else {
alert(`El numero esperado es ${numeroSecreto > numeroUsuario ? 'mayor' : 'menor'} a ${numeroUsuario}, te quedan ${intentosMax - intentos} intentos`);
intentos++;
}
numeroUsuario = +prompt(mensaje);
}
if (numeroUsuario == numeroSecreto) {
alert(`Acertaste, el numero es ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos > 1 ? 'intentos' : 'intento'}`);
} else {
alert(`Lo siento, no has conseguido adivinar el número. Número de intentos máximo ${intentosMax}, el número era ${numeroSecreto}`);
}