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

desafio final

//? numero secreto del programa

let numero_maximo = 100
let numeroSecreto = Math.floor(Math.random() * numero_maximo) + 1;

let numeroUsuario = 0;//* aca va a estar el numero del usuario
let intentos = 1;
// let palabrasVeces = 'vez';
let maximosIntentos = 2;

while (numeroUsuario != numeroSecreto ) {
// alert('hola mundo');
numeroUsuario = parseInt(prompt(escribe un entre el 1 y ${numero_maximo} numero));
console.log(typeof(numeroUsuario)); //# aca voy a poder ver el numero del usuario en consola
if (numeroUsuario == numeroSecreto) { //! aca se hace la compracion de los 2 numeros
//!Acertamos, fue verdadera la condicion
alert(Acertaste, el numero es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces'} );
}else{
if (numeroUsuario > numeroSecreto) {
alert('El numero secreto es menor');
}else{
alert('El numero secreto es mayor');
}
//! incrementamos el contador cuando no acierta
//intentos = intentos + 1;
// intentos +=1;
intentos ++;

    //palabrasVeces = 'veces';
    if (intentos > maximosIntentos) {
        alert(`Llegaste al numero maximo ${maximosIntentos} de intentos, y el numero era ${numeroSecreto}`);
        break
        
    }
    //!La condicion no se cumplio
    // alert('Lo siento, no acertaste el numero');

}

}

1 respuesta

Hola Lucas,

Tu código para el juego de adivinanza del número secreto en JavaScript se ve bastante bien. Sin embargo, parece que estás buscando asegurarte de que el juego funcione correctamente y que los intentos se cuenten de manera adecuada. Vamos a repasar algunos puntos clave:

  1. Entrada del Usuario: Estás usando prompt para obtener el número del usuario. Asegúrate de que el usuario ingrese un número válido, ya que parseInt puede devolver NaN si la entrada no es un número.

  2. Contador de Intentos: Veo que ya tienes un contador de intentos que incrementas correctamente con intentos++. Esto está bien, pero asegúrate de que la lógica de incremento esté fuera de las condiciones de acierto para que siempre se incremente cuando el usuario no acierta.

  3. Límite de Intentos: Has establecido un límite de intentos con maximosIntentos. La lógica para romper el bucle cuando se alcanzan los intentos máximos parece correcta.

  4. Mensajes de Alerta: Los mensajes de alerta proporcionan una buena retroalimentación al usuario sobre si el número es mayor o menor, y también cuando acierta o alcanza el límite de intentos.

Aquí tienes un ejemplo de cómo podrías estructurar el código para asegurarte de que todo funcione como esperas:

let numero_maximo = 100;
let numeroSecreto = Math.floor(Math.random() * numero_maximo) + 1;

let numeroUsuario = 0;
let intentos = 1;
let maximosIntentos = 2;

while (numeroUsuario != numeroSecreto) {
    numeroUsuario = parseInt(prompt(`Escribe un número entre el 1 y ${numero_maximo}`));
    
    if (isNaN(numeroUsuario)) {
        alert('Por favor, ingresa un número válido.');
        continue;
    }

    if (numeroUsuario == numeroSecreto) {
        alert(`¡Acertaste! El número es: ${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 ${maximosIntentos} intentos, y el número era ${numeroSecreto}.`);
            break;
        }
    }
}

Espero que esto te ayude a avanzar con tu desafío final. ¡Sigue practicando y divirtiéndote con la programación!

Espero haber ayudado y buenos estudios!