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

let numeroMaximoPosible = prompt('Ingresa el número máximo para jugar: ');
let numeroSecreto = Math.floor(Math.random() * numeroMaximoPosible) + 1;
let numeroUsuario = 0;
let intentos = 1;
let maximoIntentos = 3;

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

if (numeroUsuario == numeroSecreto) {
alert(Acertaste el número: ${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');
}
intentos++;
if (intentos > maximoIntentos) {
alert(Llegaste al número máximo de ${maximoIntentos} intentos);
break;
}
}
}

1 respuesta

¡Hola Victoria!

Parece que estás trabajando en un desafío de programación en JavaScript donde debes crear un juego de adivinanza de números. Tu código está bastante bien, pero hay un par de cosas que podrías ajustar para asegurarte de que funcione correctamente y cumpla con los requisitos del desafío.

  1. Uso de numeroMaximoPosible: Ya estás usando la variable numeroMaximoPosible para definir el límite superior del número secreto y también para mostrar al usuario el rango correcto en el que debe adivinar. Esto es perfecto y es exactamente lo que se busca para que el juego sea flexible.

  2. Intentos máximos: Veo que has definido maximoIntentos como 3. Esto está bien si deseas limitar el número de intentos, pero si quieres permitir más intentos, simplemente cambia el valor de esta variable.

  3. Conversión de entrada del usuario: Estás usando parseInt para convertir la entrada del usuario a un número entero, lo cual es correcto. Asegúrate de que el usuario siempre ingrese un número válido. Podrías agregar una verificación adicional para manejar casos en los que el usuario no ingrese un número o ingrese un valor fuera del rango.

Aquí tienes un ejemplo de cómo podrías mejorar el manejo de errores:

while (numeroSecreto != numeroUsuario && intentos <= maximoIntentos) {
  let inputUsuario = prompt(`Me indicas un número entre 1 y ${numeroMaximoPosible} por favor:`);
  numeroUsuario = parseInt(inputUsuario);

  if (isNaN(numeroUsuario) || numeroUsuario < 1 || numeroUsuario > numeroMaximoPosible) {
    alert(`Por favor, ingresa un número válido entre 1 y ${numeroMaximoPosible}.`);
    continue; // Volver a pedir el número sin contar como un intento
  }

  if (numeroUsuario == numeroSecreto) {
    alert(`Acertaste el número: ${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 > maximoIntentos) {
      alert(`Llegaste al número máximo de ${maximoIntentos} intentos`);
    }
  }
}

Espero que estos consejos te sean útiles para mejorar tu juego de adivinanza. ¡Diviértete programando y aprendiendo!

Espero haber ayudado y buenos estudios!