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

Proyecto (Desafio)

// Paso 1: Elige dificultad
let dificultad = prompt("Elige la dificultad:\n1 - Fácil (1 al 10, 3 intentos)\n2 - Difícil (1 al 100, 5 intentos)\n3 - Imposible (1 al 1000, 1 intento)");

let maxNumero;
let maxIntentos;

// Paso 2: Configura según dificultad
switch (dificultad) {
case "1":
maxNumero = 10;
maxIntentos = 3;
break;
case "2":
maxNumero = 100;
maxIntentos = 5;
break;
case "3":
maxNumero = 1000;
maxIntentos = 1;
break;
default:
alert("Opción no válida. Se jugará en modo fácil por defecto.");
maxNumero = 10;
maxIntentos = 3;
}

let numeroSecreto = Math.floor(Math.random() * maxNumero) + 1;
let intentos = 1;
let numeroUsuario = parseInt(prompt(Adivina el número del 1 al ${maxNumero}));

// Paso 3: Juego principal
while (numeroUsuario !== numeroSecreto && intentos < maxIntentos) {
console.log(Intento ${intentos}: el usuario eligió ${numeroUsuario});

if (numeroUsuario > numeroSecreto) {
    alert("El número secreto es menor");
} else {
    alert("El número secreto es mayor");
}

intentos++;
numeroUsuario = parseInt(prompt("Intenta de nuevo:"));

}

// Paso 4: Resultado
if (numeroUsuario === numeroSecreto) {
let palabraChances = (intentos > 1) ? "chances" : "chance";
alert(¡Correcto, genio! El número era ${numeroSecreto}. Lo lograste en ${intentos} ${palabraChances}.);
} else {
alert(Has perdido. El número era ${numeroSecreto}. ¡Inténtalo de nuevo!);
}

1 respuesta

Hola Carlos, espero que estés bien

Tu código para el juego de adivinanza de números parece estar bastante bien estructurado. Has manejado las diferentes dificultades y configurado el juego de manera que se ajuste a la elección del jugador. Además, el flujo del juego principal parece funcionar correctamente, permitiendo al usuario adivinar hasta que se acaben los intentos o acierte el número.

Aquí hay algunas sugerencias que podrían mejorar tu código:

  1. Validación de entrada: Asegúrate de que las entradas del usuario sean válidas. Por ejemplo, podrías verificar si numeroUsuario es un número y manejar el caso en que el usuario ingrese algo que no sea un número. Esto evitaría errores potenciales durante la ejecución.

    while (isNaN(numeroUsuario) || numeroUsuario < 1 || numeroUsuario > maxNumero) {
        numeroUsuario = parseInt(prompt(`Por favor, introduce un número válido entre 1 y ${maxNumero}:`));
    }
    
  2. Mensajes de error claros: Cuando el usuario elige una opción de dificultad no válida, ya has configurado el juego para que por defecto sea fácil, pero podrías también mostrar un mensaje más claro sobre qué opciones son válidas.

  3. Mejora de la experiencia del usuario: Podrías añadir un mensaje final que anime al jugador a intentarlo de nuevo, independientemente de si ganó o perdió, para hacer el juego más amigable.

Estas mejoras no son estrictamente necesarias, pero pueden ayudar a que tu juego sea más robusto y agradable para los usuarios.

Espero haber ayudado y buenos estudios!