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

Desafío de aprendizaje

Es mi código del desafío :D agradecería cualquier retroalimentación

let numeroSecreto;
let numeroUsuario;
let intentos = 1;
let maximosIntentos = 4;

// Paso nuevo: el usuario define el rango máximo
let maximo = parseInt(prompt("¿Hasta qué número quieres jugar?"));
numeroSecreto = Math.floor(Math.random() * maximo) + 1; 
while (numeroSecreto != numeroUsuario) {
    numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${maximo}, por favor:`));
    console.log(numeroUsuario);

    if (numeroUsuario === numeroSecreto) {
        alert(` Acertaste! El número secreto era: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos === 1 ? "vez" : "veces"}.`);
        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 intentos (${maximosIntentos}). El número secreto era: ${numeroSecreto}.`);
            break;
        }
    }
}
1 respuesta

¡Hola Jireh!

Tu código para el desafío de adivinar el número secreto se ve muy bien y parece que está funcionando correctamente. Aquí tienes algunos comentarios y sugerencias para mejorar o ajustar tu código:

  1. Validación de entrada: Sería útil agregar una validación para asegurarte de que el usuario ingrese un número válido tanto al definir el rango máximo como al intentar adivinar el número secreto. Esto evitará que el programa falle si el usuario ingresa algo que no sea un número.

    let maximo;
    do {
        maximo = parseInt(prompt("¿Hasta qué número quieres jugar?"));
    } while (isNaN(maximo) || maximo <= 0);
    

    Y para el número del usuario:

    do {
        numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${maximo}, por favor:`));
    } while (isNaN(numeroUsuario) || numeroUsuario < 1 || numeroUsuario > maximo);
    
  2. Mensajes de consola: Actualmente, estás utilizando console.log(numeroUsuario); para mostrar el número ingresado por el usuario. Si no necesitas esta información para depuración, puedes eliminarla o, si prefieres, podrías usar console.log para mostrar más información útil sobre el progreso del juego.

  3. Optimización del flujo: Aunque tu lógica es clara, podrías considerar usar una función para manejar la lógica de adivinanza, lo que haría tu código más modular y fácil de leer. Por ejemplo:

    function adivinarNumeroSecreto() {
        let numeroUsuario;
        let intentos = 1;
    
        while (numeroSecreto != numeroUsuario) {
            // Lógica del juego
        }
    }
    
    adivinarNumeroSecreto();
    

Estas son solo algunas ideas para mejorar tu código, pero lo más importante es que está funcionando y cumpliendo con el objetivo del desafío. ¡Buen trabajo!

Espero haber ayudado y buenos estudios!