Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

Desafío: Ampliando el Rango del Número Secreto

Hola compañeros, les comparto mi solución al desafío planteado en clase. En este reto, debemos modificar nuestro juego del número secreto para que el número aleatorio no se genere solo entre 1 y 10, sino que ahora pueda estar en un rango más amplio, como de 1 a 100 o incluso de 1 a 1000. Con este ejercicio, reforzamos nuestros conocimientos sobre la función Math.random(), la manipulación de números aleatorios y el uso de operadores matemáticos en JavaScript.

Solución al desafío

  1. Generar un número aleatorio entre 1 y 100:
let numeroSecreto = Math.floor(Math.random() * 100) + 1;
console.log(`Número secreto generado (1-100): ${numeroSecreto}`);
  1. Generar un número aleatorio entre 1 y 1000:
let numeroSecreto = Math.floor(Math.random() * 1000) + 1;
console.log(`Número secreto generado (1-1000): ${numeroSecreto}`);

Explicación de la solución

Para lograr este cambio, ajustamos la fórmula que genera el número aleatorio:

  • Math.random() genera un número decimal entre 0 y 1 (sin incluir el 1).
  • Multiplicamos el resultado por el número máximo que queremos (100 o 1000).
  • Math.floor() redondea el número hacia abajo, convirtiéndolo en un número entero.
  • Sumamos 1 para asegurarnos de que el número mínimo generado sea 1, ya que sin esta suma el menor valor posible sería 0.

Este ajuste nos permite cambiar fácilmente el rango del número secreto sin afectar el resto del código del juego.

Conclusión

Este desafío nos permitió comprender mejor el manejo de números aleatorios en JavaScript y cómo modificar el rango de generación de manera flexible. Ahora nuestro juego del número secreto puede adaptarse fácilmente a diferentes niveles de dificultad, listo para seguir mejorándolo.

5 respuestas

Aquí otra solución al desafío planteado, modificando el código para que el número máximo del rango sea una variable y pueda ser fácilmente cambiado sin afectar el resto del código.

Solución:

  1. Crear la variable numeroMaximoPosible:

    • Definimos una variable para almacenar el valor máximo del número secreto, lo que nos permite modificar el rango sin modificar otras partes del código.
  2. Reemplazar todos los valores fijos por la nueva variable:

    • Reemplazamos las ocurrencias del número 10 por la variable numeroMaximoPosible, de modo que el rango se ajustará dinámicamente según el valor de esta variable.
  3. Utilizar template strings para mostrar el rango correcto:

    • Utilizamos template strings para mostrar al usuario el rango en el que tiene que adivinar el número, según el valor de la variable.

Código Modificado:

// Variables
let numeroMaximoPosible = 100; // Rango dinámico
let numeroSecreto = Math.floor(Math.random() * numeroMaximoPosible) + 1; // Número aleatorio entre 1 y numeroMaximoPosible
let numeroUsuario = 0;
let intentos = 1;
let maximosIntentos = 3;

while (numeroUsuario != numeroSecreto) {
    numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${numeroMaximoPosible}, por favor:`));

    if (numeroUsuario === numeroSecreto) {
        // Acertamos, fue verdadera la condición
        alert(`¡Acertaste! El número secreto era ${numeroSecreto}. Lo hiciste en ${intentos} ${intentos === 1 ? 'vez' : 'veces'}.`);
    } else {
        if (numeroUsuario > numeroSecreto) {
            alert('El número secreto es menor.');
        } else {
            alert('El número secreto es mayor.');
        }
        // Incrementamos el contador de intentos
        intentos++;

        if (intentos > maximosIntentos) {
            alert(`¡Llegaste al número máximo de ${maximosIntentos} intentos! El número secreto era ${numeroSecreto}.`);
            break; // Finaliza el juego después de los intentos máximos
        }
    }
}

Explicación:

  1. numeroMaximoPosible: Esta es la nueva variable que almacena el número máximo en el rango (100 en este caso, pero se puede cambiar a cualquier otro valor, como 50 o 1000).

  2. Cambio en el número secreto: En lugar de generar un número aleatorio entre 1 y 10, ahora se genera entre 1 y el valor de numeroMaximoPosible, lo que hace que el rango sea flexible.

  3. Uso de template strings: En el mensaje al usuario sobre el rango de números, se utiliza numeroMaximoPosible para informar de manera dinámica el rango donde debe adivinar el número.

  4. Intentos y mensaje final: Si el jugador no adivina el número dentro del número máximo de intentos, el juego termina y muestra el número secreto.

Conclusión:

Esta solución hace que el rango de números secretos sea fácilmente configurable sin tener que modificar todo el código. Puedes cambiar el valor de numeroMaximoPosible en cualquier momento para aumentar o disminuir el rango, haciendo que el juego sea más flexible y adaptable.

Super como desglosaste y diste solución al problema, además pase por tu perfil y eres muy pila, también soy de Bogotá.

Excelente me gusta tu forma de logica

Muchas gracias compañero, espero poder volver a compartir conocimientos y nuevas formas de solucionar desafíos relacionados con lógica de programación. Sigan adelante con el curso, les deseo muchos éxitos.

Excelente logica y estructura en tu desafio