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

Desafío: juego de adivinación

public class Desafio{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int aletorio=0, intentos=0, valorIngresado=0;
aletorio = new Random().nextInt(100);
while (intentos<5){
System.out.println("Ingresa el valor a adivinar entre 0 y 100");
valorIngresado = sc.nextInt();
if (aletorio == valorIngresado) {
System.out.println("Perfecto has logrado adivinar el número secreto");
break;
} else if (valorIngresado<aletorio) {
System.out.println(String.format("El valor ingresado %d es menor que el número Secreto", valorIngresado));
}else {
System.out.println(String.format("El valor ingresado %d es mayor que el número Secreto", valorIngresado));
}
intentos++;
}
if (intentos==5) {
System.out.println("El número Secreto es: "+aletorio);
}
}
}

1 respuesta

Hola Juan, espero que estés bien

¡Espero que estés disfrutando del curso! He revisado tu código para el desafío del juego de adivinación y parece que está bastante bien. Tu programa genera un número aleatorio y permite al usuario intentar adivinarlo, proporcionando retroalimentación en cada intento. Aquí hay algunos puntos que podrías considerar:

  1. Generación del número aleatorio: Estás generando el número aleatorio correctamente con new Random().nextInt(100);, lo cual es perfecto.

  2. Lógica de comparación: Tu lógica para comparar el número ingresado con el número secreto está bien implementada. Estás utilizando if-else para informar al usuario si el número ingresado es mayor o menor que el número secreto.

  3. Control de intentos: El uso de la variable intentos para contar los intentos es correcto y el bucle while se encarga de limitar los intentos a un máximo de 5.

  4. Salida del bucle: Utilizas break; para salir del bucle cuando el usuario adivina correctamente, lo cual es una buena práctica.

Una pequeña mejora podría ser inicializar el objeto Random fuera del bucle para que sea más eficiente, aunque en este caso no afecta mucho el rendimiento. Aquí te dejo un ejemplo de cómo podrías hacerlo:

public class Desafio {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random random = new Random(); // Inicializar fuera del bucle
        int aletorio = random.nextInt(100);
        int intentos = 0, valorIngresado = 0;

        while (intentos < 5) {
            System.out.println("Ingresa el valor a adivinar entre 0 y 100");
            valorIngresado = sc.nextInt();
            if (aletorio == valorIngresado) {
                System.out.println("Perfecto has logrado adivinar el número secreto");
                break;
            } else if (valorIngresado < aletorio) {
                System.out.println(String.format("El valor ingresado %d es menor que el número Secreto", valorIngresado));
            } else {
                System.out.println(String.format("El valor ingresado %d es mayor que el número Secreto", valorIngresado));
            }
            intentos++;
        }
        if (intentos == 5) {
            System.out.println("El número Secreto es: " + aletorio);
        }
    }
}

Espero que esto te sea de ayuda y que continúes avanzando en tu aprendizaje de Java. ¡Bons estudios!