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

Mi solucion

Lo que hice fue crea dos variables de min y max para poder controlar y modificar de manera mas simple todo el codigo en el futuro, utilizando template string en el primer prompt y incluyendo las dos nuevas variabes dentro de la variable de numeroSecreto para que vaya genernado el semialeatorio numero. Mi codigo quedo asi:
`//Variables
let min = 1
let max = 20
let numeroSecreto = Math.floor(Math.random()* (max - min + 1));
let numeroUsuario = 0;
let intentos = 1;
//let palabraVeces = 'vez';
let maximosIntentos = 4;

//console.log(numeroSecreto); Esto lo deje para consultar si la variable funcionaba bien.
while (numeroUsuario != numeroSecreto) {
numeroUsuario = parseInt(prompt(Me indicas un número entre ${min} y ${max} por favor:));

console.log(typeof(numeroUsuario));
if (numeroUsuario == numeroSecreto) {
    //Acertamos, fue verdadera la condición
    alert(`Acertaste, el número es: ${numeroUsuario}. 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 cuando no acierta
    //intentos = intentos + 1;
    //intentos += 1;
    intentos++;

    //palabraVeces = 'veces';
    if (intentos > maximosIntentos) {
        alert(`Llegaste al número máximo de ${maximosIntentos} intentos`);
        break;
    }
    //La condición no se cumplió
    //alert('Lo siento, no acertaste el número');
}

}`

1 respuesta

¡Hola Naomi, espero que estés bien!

Parece que has hecho un gran trabajo al adaptar tu código para que sea más flexible y fácil de modificar en el futuro. Has implementado correctamente el uso de variables para definir los límites mínimos y máximos, lo cual es una excelente práctica de programación. Sin embargo, he notado un pequeño detalle en tu código que podrías ajustar.

En tu cálculo del numeroSecreto, actualmente tienes esta línea:

let numeroSecreto = Math.floor(Math.random() * (max - min + 1));

Este cálculo genera un número aleatorio entre 0 y 19, ya que Math.random() genera un número entre 0 (inclusive) y 1 (exclusivo), y al multiplicarlo por 20 (que es max - min + 1), obtienes un rango de 0 a 19. Para incluir el número máximo en tu rango, deberías ajustar el cálculo así:

let numeroSecreto = Math.floor(Math.random() * (max - min + 1)) + min;

De esta manera, el numeroSecreto se generará correctamente entre el valor de min y max, ambos inclusive.

Espero que esta pequeña corrección te ayude a mejorar aún más tu código. ¡Sigue adelante con tus estudios en programación!

Espero haber ayudado y buenos estudios!