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

Desafio Logica de Programacion

Buenas tardes a todos compañeros e instructores! Quiero compartirles mi codigo de JavaScript sobre el desafio propuesto al final del curso de Logica de Programacion. Busque un abordaje un poco mas interactivo para el usuario, buscando que este diga, ademas del numero maximo que quiere para jugar, tambien la cantidad de intentos que quiere para conseguir adividar este numero secreto. Y al final del codigo, implemente que aparezca el numero de intentos elegidos, en el caso de perder, y el numero secreto que no pudo ser adivinado.

Me gustaria saber que opinan sobre mi resultado, que cambiarian o si simplemente como les parecio esta implementacion adicional que hice.

Saludos y a seguir avanzando!

// Variables
let numeroMax = prompt("Ingrese el numero maximo a adivinar.");
let maximosIntentos = prompt("Ingrese la cantidad de intentos que quiera realizar.");
let numeroSecreto = Math.floor(Math.random()*numeroMax) + 1;
let numeroUsuario = 0;
let intentos = 1;


while(numeroSecreto != numeroUsuario){
    numeroUsuario = parseInt(prompt(`Indica un número entre 1 y ${numeroMax}`));

    if (numeroSecreto == numeroUsuario) {
        // Fue VERDADERA la condicion
        alert(`Acertaste! El número es: ${numeroUsuario}. Lo lograste en ${intentos} ${intentos == 1 ? "intento" : "intentos"}.`)
    } else {
        if(numeroUsuario > numeroSecreto){
            alert("El numero secreto es menor");
        } else {
            alert("El numero secreto es mayor");
        }
        // La condicion no se cumplio.
    };
    intentos++;
    

    if(intentos > maximosIntentos) {
        alert(`Llegaste al numero maximo de ${maximosIntentos} intento${maximosIntentos == 1 ? "" : "s"}. Perdiste. El número era ${numeroSecreto}`);
        break;
        // Break es un cierre forzado
    }
}
1 respuesta

¡Hola Franco!

Primero que nada, ¡felicitaciones por tu iniciativa de hacer el desafío más interactivo! La forma en que has implementado la interacción con el usuario es muy creativa y añade un nivel adicional de desafío al juego. Aquí te dejo algunos comentarios y sugerencias que podrían ayudarte a mejorar aún más tu código:

  1. Validación de entrada: Sería útil agregar validaciones para asegurarte de que el usuario ingrese valores numéricos válidos tanto para el número máximo como para la cantidad de intentos. Podrías usar un bucle while para pedir nuevamente la entrada si no es válida.

    let numeroMax;
    do {
        numeroMax = parseInt(prompt("Ingrese el numero maximo a adivinar."));
    } while (isNaN(numeroMax) || numeroMax <= 0);
    
    let maximosIntentos;
    do {
        maximosIntentos = parseInt(prompt("Ingrese la cantidad de intentos que quiera realizar."));
    } while (isNaN(maximosIntentos) || maximosIntentos <= 0);
    
  2. Mensajes de error más claros: Cuando el usuario ingresa un número fuera del rango, podrías proporcionar un mensaje que lo indique. Esto puede mejorar la experiencia del usuario.

    if (numeroUsuario < 1 || numeroUsuario > numeroMax) {
        alert(`Por favor, ingresa un número entre 1 y ${numeroMax}.`);
        continue;
    }
    
  3. Mejora de la lógica de los intentos: Actualmente, el contador de intentos se incrementa incluso cuando el usuario ingresa un número fuera del rango. Puedes ajustar esto para que solo se incremente cuando el usuario ingresa un número válido.

  4. Comentarios en el código: Aunque ya tienes algunos comentarios, añadir más explicaciones sobre lo que hace cada parte del código puede ser útil para otros que lean tu código o incluso para ti mismo en el futuro.

En general, has hecho un gran trabajo al implementar esta funcionalidad adicional. Espero que estas sugerencias te sean útiles para seguir mejorando.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!