Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: Lógica de programación

// Solicitaremos al usuario los valores mínimos y máximos del rango let numeroMinimo = parseInt(prompt("Indica el número mínimo del rango:")); let numeroMaximo = parseInt(prompt("Indica el número máximo del rango:"));

// Validaremos que el rango corresponda a un número y que el número mínimo debe ser menor que el máximo while (isNaN(numeroMinimo) || isNaN(numeroMaximo) || numeroMinimo >= numeroMaximo) { alert("Por favor, ingresa un rango válido (mínimo debe ser menor que máximo)."); numeroMinimo = parseInt(prompt("Indica el número mínimo del rango:")); numeroMaximo = parseInt(prompt("Indica el número máximo del rango:")); }

// Generar el número secreto dentro del rango definido por el usuario let numeroSecreto = Math.floor(Math.random() * (numeroMaximo - numeroMinimo + 1)) + numeroMinimo;

let numeroUsuario = 0; let intentos = 1; let maximosIntentos = 6;

while (numeroUsuario != numeroSecreto) { numeroUsuario = parseInt(prompt(Indica un número entre ${numeroMinimo} y ${numeroMaximo}:));

// Validar entrada del número elegido por el usuario, verificaremos que sea número y que se encuentre dentro del rango antes entregado
if (isNaN(numeroUsuario) || numeroUsuario < numeroMinimo || numeroUsuario > numeroMaximo) {
    alert(`Por favor, ingresa un número válido entre ${numeroMinimo} y ${numeroMaximo}.`);
    continue;
}

if (numeroUsuario == numeroSecreto) {
    alert(`¡Acertaste! El número es: ${numeroUsuario}. Lo lograste en ${intentos} ${intentos == 1 ? 'intento' : 'intentos'}.`);
    break;
} else {
    if (numeroUsuario > numeroSecreto) {
        alert("El número secreto es menor.");
    } else {
        alert("El número secreto es mayor.");
    }

    intentos++;

    if (intentos > maximosIntentos) {
        alert(`Llegaste al número máximo de ${maximosIntentos} intentos. El número secreto era ${numeroSecreto}.`);
        break;
    }
}

}

1 respuesta

Hola Gustavo,

¡Qué interesante desafío de lógica de programación has compartido! Parece que estás creando un juego de adivinanza de números en el que el usuario debe adivinar un número secreto dentro de un rango específico.

Tu código se ve bastante bien estructurado y parece que cubre las validaciones necesarias para asegurarse de que el usuario ingrese valores válidos. Aquí hay algunos puntos que podrías considerar para mejorar o ajustar tu código:

  1. Validación de entrada: Ya estás validando que el usuario ingrese números válidos y que el mínimo sea menor que el máximo, lo cual es excelente. Asegúrate de que el usuario entienda claramente el mensaje de error si ingresa un valor incorrecto.

  2. Número de intentos: Has establecido un máximo de 6 intentos, lo cual es una buena idea para mantener el juego desafiante. Puedes considerar dar pistas adicionales al usuario después de ciertos intentos, como "Estás cerca" si el número está a una distancia de 2 o 3 del número secreto.

  3. Experiencia del usuario: Podrías agregar una opción para que el usuario decida si quiere jugar de nuevo después de terminar el juego, ya sea que gane o pierda. Esto podría hacerse preguntando al final si quieren reiniciar el juego.

  4. Comentarios: Tus comentarios en el código son claros y ayudan a entender la lógica. Asegúrate de mantenerlos actualizados si realizas cambios en el código.

Aquí te dejo un pequeño ejemplo de cómo podrías implementar la opción de jugar de nuevo:

let jugarDeNuevo = true;

while (jugarDeNuevo) {
    // Coloca aquí tu lógica de juego actual

    jugarDeNuevo = confirm("¿Quieres jugar de nuevo?");
}

Espero que estas sugerencias te sean útiles. ¡Sigue adelante con tu aprendizaje y disfruta del proceso! Espero haber ayudado y buenos estudios!