// Variables iniciales
let numeroUsuario = 0;
let intentos = 1;
// let palabraVeces = 'vez';
let maximosIntentos;
// Se le pide al usuario que indique cuántos intentos quiere tener
do {
maximosIntentos = parseInt(prompt("Ingresa el número de intentos que te gustaría tener"));
} while (isNaN(maximosIntentos) || maximosIntentos <= 0); // Validación para que los intentos sean válidos, es decir, sean un número y mayores que cero.
let rangoMinimo, rangoMaximo; // Definimos los límites del rango de adivinación.
// Solicitar al usuario el rango de números
do {
// Se le pide al usuario que ingrese el número mínimo del rango
do {
rangoMinimo = parseInt(prompt("Ingresa el número mínimo del rango en el que jugarás:"));
} while (isNaN(rangoMinimo)); // Validación
// Se le pide al usuario que ingrese el número máximo del rango
do {
rangoMaximo = parseInt(prompt("Ingresa el número máximo del rango en el que jugarás:"));
} while (isNaN(rangoMaximo)); // Validación
// Se comprueba que el rango mínimo sea menor que el rango máximo
if (rangoMinimo >= rangoMaximo) {
alert("El valor mínimo debe ser menor que el máximo. Inténtalo nuevamente.");
}
} while (rangoMinimo >= rangoMaximo); // Si el mínimo es mayor o igual que el máximo, se pide al usuario que lo intente de nuevo
// Se genera el número secreto aleatorio dentro del rango
let numeroSecreto = Math.floor(Math.random() * (rangoMaximo - rangoMinimo + 1)) + rangoMinimo;
// console.log(numeroSecreto);
// Se comienza el ciclo de adivinanza
while (numeroUsuario != numeroSecreto) {
// Se pide al usuario que ingrese un número dentro del rango especificado
numeroUsuario = parseInt(prompt(`Me indicas un número entre ${rangoMinimo} y ${rangoMaximo} por favor:`));
console.log(numeroUsuario); // Imprime el número ingresado por el usuario en la consola
// Se comprueba si el número ingresado es correcto
if (numeroUsuario == numeroSecreto) {
// Si el usuario acertó
alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces'}`);
// Muestra un mensaje si acertó el número, y usa una condición ternaria para mostrar "vez" o "veces"
} else {
// Si el número ingresado no es el secreto, indicamos si el número es mayor o menor
if (numeroUsuario > numeroSecreto) {
alert('El número secreto es menor');
} else {
alert('El número secreto es mayor');
}
// Incrementamos el contador de intentos
intentos++; // Opción abreviada para "intentos = intentos + 1;"
// Si el usuario ha alcanzado el número máximo de intentos, terminamos el juego
if (intentos > maximosIntentos) {
alert(`Llegaste al número máximo de ${maximosIntentos} intentos. El número secreto era ${numeroSecreto}`);
break; // Sale del bucle
}
}
}