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

Desafio, Adivinar Nùmero

public class AdivinarNumero {
public static void main(String[] args) {

/*Crea un programa que simule un juego de adivinanzas. El programa debe generar un número aleatorio entre 0 y 100,
  y pedir al usuario que intente adivinar ese número en un máximo de 5 intentos.
  En cada intento, el programa debe informar si el número ingresado por el usuario es mayor
  o menor que el número generado.*/

    Scanner scanner = new Scanner(System.in);
    int numeroAleatorio = new Random().nextInt(100);
    int intentos = 0;


    System.out.println("¿Puedes adivinar el número secreto entre 1 y 100, en solo 5 intentos? ");
    System.out.println("¡Vamos! ingresa el nùmero");
    System.out.println(numeroAleatorio);
    while (intentos < 5) {

        int numeroIngresado= scanner.nextInt();
        intentos++;

        if (numeroIngresado == numeroAleatorio){
            System.out.println("¡Correcto adivinaste el número secreto! el nùmero era " + numeroAleatorio );
            break;
        }else {
            if(numeroIngresado > numeroAleatorio) {
                System.out.println("El número es menor'");
            }
            else {
                System.out.println("El número mayor");
            }
            }
        if (intentos == 5) {
            System.out.println("No has conseguido adivinar el nùmero secreto, el nùmero era " + numeroAleatorio);
        }
        }
    }
}
1 respuesta

¡Hola Lygj, espero que estés bien!

El problema que estás experimentando en tu código es que estás imprimiendo el número aleatorio antes de que el usuario tenga la oportunidad de adivinarlo. Esto puede confundir al usuario y arruinar la experiencia del juego.

Además, hay un pequeño error en el mensaje que imprimes cuando el número ingresado es mayor o menor que el número aleatorio.

Para solucionar esto, simplemente debes mover la línea System.out.println(numeroAleatorio); después de que el usuario haya tenido la oportunidad de adivinar el número. De esta forma, el número aleatorio se mostrará después de que el usuario haya intentado adivinarlo.

Aquí tienes el código corregido:

public class AdivinarNumero {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int numeroAleatorio = new Random().nextInt(100);
        int intentos = 0;

        System.out.println("¿Puedes adivinar el número secreto entre 1 y 100, en solo 5 intentos? ");
        System.out.println("¡Vamos! ingresa el número");

        while (intentos < 5) {
            int numeroIngresado = scanner.nextInt();
            intentos++;

            if (numeroIngresado == numeroAleatorio) {
                System.out.println("¡Correcto! Adivinaste el número secreto, el número era " + numeroAleatorio);
                break;
            } else {
                if (numeroIngresado > numeroAleatorio) {
                    System.out.println("El número es menor");
                } else {
                    System.out.println("El número es mayor");
                }
            }
            if (intentos == 5) {
                System.out.println("No has conseguido adivinar el número secreto, el número era " + numeroAleatorio);
            }
        }
        System.out.println(numeroAleatorio);
    }
}

Espero que esto te ayude a corregir el problema. ¡Buena suerte con tu juego de adivinanzas!

Espero haber ayudado y buenos estudios!