Implementé una pequeña función y con switch/case para elegir dificultad, aunque los valores de los intentos si son quemados...
function configurarJuego(dificultad) { let rangoMaximo, maximosIntentos; switch (dificultad) { case 'facil': rangoMaximo = 10; maximosIntentos = 3; break; case 'normal': rangoMaximo = 100; maximosIntentos = 15; break; case 'dificil': rangoMaximo = 1000; maximosIntentos = 50; break; default: alert('Dificultad no válida. Se establecerá la dificultad por defecto a fácil.'); rangoMaximo = 10; maximosIntentos = 3; break; }
return {
rangoMaximo,
maximosIntentos
};
}
let dificultadElegida = prompt("Selecciona la dificultad (facil, normal, dificil):").toLowerCase();
let configuracion = configurarJuego(dificultadElegida);
let numeroSecreto = Math.floor(Math.random() * configuracion.rangoMaximo) + 1; let numeroUsuario = 0; let intentos = 1;
while (numeroUsuario != numeroSecreto) {
numeroUsuario = parseInt(prompt(¿Me indicas un número entre 1 y ${configuracion.rangoMaximo} por favor?
));
if (numeroUsuario == numeroSecreto) {
alert(`¡Acertaste! El número es: ${numeroUsuario}, lo hiciste con ${intentos} ${intentos == 1 ? 'vez' : 'veces'}.`);
} else {
if (numeroUsuario > numeroSecreto) {
alert("El número secreto es menor.");
} else {
alert("El número secreto es mayor.");
}
intentos++;
if (intentos > configuracion.maximosIntentos) {
alert(`Lo siento, alcanzaste el número máximo de ${configuracion.maximosIntentos} intentos, y no acertaste en el número... :(`);
break;
}
}
}