El usuario definira el rango maximo hasta el cual debe adivinar, adicionalmente verifica que el numero maximo sea mayor que y de lo contrario continua solicitando un rango maximo valido para jugar, tambien se valida el numero con el que juega el usuario para que este dentro del rango elegido.
//Variables
let numeroUsuario = 0;
let intentos = 1;
let maximosIntentos = 3;
//se pregunta el numero maximo
let numeroMaximo = parseInt(prompt("¿Me indicas el numero maximo hasta el que deseas jugar? \nEl minimo sera siempre 1"));
//se verifica que el numero sea mayor que 1 sino se pide nuevamente el maximo hasta que cumple la condicion
while(numeroMaximo <= 1){
numeroMaximo = parseInt(prompt("El numero debe ser mayor que 1\nIngresa otro numero por favor:"));
}
//se define el numero secreto en funcion al numero maximo
let numeroSecreto = Math.floor(Math.random()*numeroMaximo)+1;
while (numeroUsuario != numeroSecreto) {
//se muestre el rango dado por el usuario
numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${numeroMaximo} por favor:`));
//Verificamos que el numero ingresado para jugar este dentro del rango
if(numeroUsuario < 1 || numeroUsuario > numeroMaximo){
alert(`El numero para jugar debe estar dentro del rango establecido de 1 a ${numeroMaximo} \nIntentalo de nuevo.`);
}
else 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++;
//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');
}
}