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

Solución del desafío

El desafío planteado consiste en modificar un juego de adivinanza de números para que sea más flexible y extensible. Originalmente, el número máximo de adivinanza estaba fijo en 10, pero se desea que este límite pueda ser ajustable entre distintos rangos, como 1 a 100, 1 a 50, etc.

La solución propuesta implica introducir una variable llamada numeroMaximoPosible que define el límite superior del rango. Esta variable se utiliza en todos los puntos del código donde el límite máximo aparece de manera estática. Por ejemplo, se sustituye el número 10 por numeroMaximoPosible en las comparaciones y en los mensajes mostrados al usuario.

Además, se hace uso de template strings (cadenas de texto con interpolación de variables) para asegurarse de que los mensajes al usuario reflejen correctamente el rango actual definido por numeroMaximoPosible.

Esto no solo hace el juego más dinámico y ajustable según se necesite (por ejemplo, cambiando de 10 a 100 para hacerlo más desafiante), sino que también enseña principios básicos de programación como el uso de variables, control de flujo y manipulación de cadenas en un contexto práctico.

La flexibilidad agregada permite modificar no solo el rango de números a adivinar, sino también la cantidad de intentos disponibles, lo cual enriquece la experiencia de juego y enseñanza.

Para hacer el juego de adivinanza de números más flexible y ajustable, podemos seguir la estrategia que mencionaste utilizando una variable para definir dinámicamente el límite superior del rango de números a adivinar. Aquí te doy un ejemplo básico de cómo podrías implementarlo en JavaScript:

// Definimos la función principal del juego
function juegoAdivinanza(numeroMaximoPosible) {
    // Generamos un número aleatorio dentro del rango establecido
    const numeroAdivinar = Math.floor(Math.random() * numeroMaximoPosible) + 1;
    let intentos = 0;
    let adivinanza = 0;

    console.log(`Bienvenido a la adivinanza de números (1-${numeroMaximoPosible}).`);

    while (adivinanza !== numeroAdivinar) {
        adivinanza = parseInt(prompt(`Ingrese un número entre 1 y ${numeroMaximoPosible}:`));

        if (isNaN(adivinanza)) {
            console.log('Por favor, ingrese un número válido.');
        } else {
            intentos++;

            if (adivinanza < numeroAdivinar) {
                console.log('El número ingresado es demasiado bajo. Intente nuevamente.');
            } else if (adivinanza > numeroAdivinar) {
                console.log('El número ingresado es demasiado alto. Intente nuevamente.');
            }
        }

        if (intentos === 10) {
            console.log(`Has alcanzado el límite de intentos. El número correcto era ${numeroAdivinar}.`);
            break;
        }
    }

    if (adivinanza === numeroAdivinar) {
        console.log(`¡Felicitaciones! Has adivinado el número ${numeroAdivinar} en ${intentos} intentos.`);
    }
}

// Ejemplo de uso: juego con números del 1 al 50
juegoAdivinanza(50);





En este ejemplo:

La función juegoAdivinanza toma numeroMaximoPosible como parámetro, que define el límite superior del rango de números a adivinar.
Se utiliza Math.random() para generar un número aleatorio dentro de ese rango.
El juego permite al usuario ingresar números y realiza las comparaciones necesarias para guiarlo hacia la respuesta correcta.
Los mensajes al usuario (mediante console.log y prompt) están diseñados para ser claros y reflejar el rango actual de números.
La cantidad máxima de intentos (10 en este ejemplo) se puede ajustar según se necesite, y también se podría hacer dinámica si se desea.
Esta estructura hace que el juego sea fácilmente adaptable para diferentes rangos de números, lo que enriquece la experiencia de juego y lo hace más educativo y flexible según los objetivos específicos de enseñanza o entretenimiento que se tengan.
1 respuesta

Hola Frank, espero que estés bien

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

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