Me gusta mucho como me quedo... lo puedo vender? jaja
Características Primera parte: Selección de rango
- El jugador decide si quiere jugar de 1 a 10, o de 1 a 100 o de 1 a 1000
- Si escoge de 1 a 10, tendrá 3 intentos.
- Si escoge de 1 a 100 o de 1 a 1000 tendrá 10% de intentos
- Si escoge un rango incorrecto, el programa se lo hará saber y lo pondrá a escoger de nuevo.
Segunda parte: Adivinando números
- El jugador puede ingresar números dependiendo del rango que haya escogido.
- Si ingresa un numero que esta fuera del rango que haya escogido en la primer parte, entonces el programa le hará saber de su error y lo pondrá a que vuelva a intentar ingresar sin perder la oportunidad.
- Si adivina, el programa le hará saber que ya gano.
- Si no adivina, el programa le hará saber si el numero secreto es mayor o menos.
- Si no adivina, el programa también le hará saber cuantos intentos a agotado del total de intentos que tenia.
// Variables
let numeroSecreto;
let numeroUsuario; // No le asigno 0 para evitar que conflicto cuando el numero secreto sea tambien 0
let rango; //esta variable es para decidir si es de 1 a 10, 1 a 100 o 1 a 1000
let intentosEjecutados = 1;
let intentosDisponibles;
rango = prompt(`Bienvenido al juego.\n\nEscirbe 10, 100 o 1000 para escoger un rango de numeros en el juego:`);
// Nos aseguramos que el jugador haya escogido un rango de juego correcto
while (rango != 10 && rango != 100 && rango != 1000) {
alert(`ERROR:\n\nHas escrito un numero incorrecto`);
rango = prompt(`Intentemolo de nuevo.\n\nEscirbe 10, 100 o 1000 para escoger un rango de de numeros en el juego:`);
}
// Definimos cuantos intentos tendra el jugador dependiendo del rango escogido
numeroSecreto = Math.floor(Math.random()*rango)+1;
if (rango == 10) {
intentosDisponibles = 3;
} else {
intentosDisponibles = rango/10;
}
// El primer while tiene dos objetivos:
// Obejtivo 1: Ejecutarse solo cuando no se ha excedido el numero maximo de intentos
// Objetivo 2: Ejecutrase solo cuando todavia no se a acertado el numero secreto
while (numeroUsuario != numeroSecreto && intentosEjecutados < intentosDisponibles + 1) {
console.log(rango, numeroSecreto, intentosDisponibles, intentosEjecutados);
numeroUsuario = parseInt(prompt(`Indica un número entre 1 y ${rango} por favor:`));
// Nos aseguramos que el numeroUsuario sea solo entre 1 y 10
while (numeroUsuario < 1 || numeroUsuario > 100) {
alert(`ERROR:\nTu numero debe ser entre 1 y ${rango} solamente`);
numeroUsuario = prompt(`Intentemolo otra vez.\n\nIndica un número entre 1 y ${rango} por favor:`);
}
// Esta seccion de codigo realiza la compararacion de numeros
if (numeroUsuario == numeroSecreto) {
//cuando acertamos
alert(`FELICIDADES!\n\nAcertaste, el secretonumero es: ${numeroUsuario}.\n\nLo lograste en ${intentosEjecutados} ${intentosEjecutados == 1 ? 'intento' : 'intentos' }`);
} else {
//Cuando No acertamos y el numero secreto es Mayor
if(numeroSecreto > numeroUsuario) {
alert(
`Lo siento, NO has acertado.\n\nEl numero secreto es mayor que ${numeroUsuario}.\n\nHas hecho ${intentosEjecutados} ${intentosEjecutados == 1 ? 'intento' : 'intentos' } de ${intentosDisponibles}`);
} else {
//Cuando No acertamos y el numero secreto es Menor
alert(`Lo siento, NO has acertado.\n\nEl numero secreto es menor que ${numeroUsuario}.\n\nHas hecho ${intentosEjecutados} ${intentosEjecutados == 1 ? 'intento' : 'intentos' } de ${intentosDisponibles}`);
}
}
//Contador de numero de intentos
//Esta rutina condicional se ejecuta solo No se ha acertado el numero
//Avisa cuando ya se acabaron los intentos
intentosEjecutados ++ ;
if (intentosEjecutados == intentosDisponibles + 1 && numeroUsuario != numeroSecreto) {
alert(`Lo siento!\n\nYa no tienes mas intentos disponibles`);
break;
}
}