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

Desafio:juego de adivinacion

import java.util.Random;
import java.util.Scanner;

public class Adivinacion {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int intento = 0;
int numeroIngresado = 0;

    int generado = new Random().nextInt(100);

    while (intento < 5) {
        System.out.println("Ingrese un número:");
        numeroIngresado = teclado.nextInt();
        if (numeroIngresado != generado && numeroIngresado < generado) {
            System.out.printf("Su numero %d no es correcto y es menor al número esperado\n", +numeroIngresado);
            intento++;

// System.out.println(generado);
} else if (numeroIngresado != generado && numeroIngresado > generado) {
System.out.printf("Su numero %d no es correcto y es mayor al número esperado\n", +numeroIngresado);
intento++;
// System.out.println(generado);
} else {
System.out.printf("Felicidades su número %d es el correcto!\n", +numeroIngresado);
// System.out.println(generado);
break;
}
}
if(intento == 5){
System.out.printf("El numero generado era %d",+generado);
}

}

}

1 respuesta

¡Hola, Carlos, espero que estés bien!

Tu código para el juego de adivinación en Java se ve bastante bien. Permíteme ofrecerte algunas sugerencias para mejorarlo y asegurarte de que funcione como esperas:

  1. Generación del número aleatorio: Estás generando un número aleatorio entre 0 y 99 con new Random().nextInt(100);. Si deseas que el rango sea de 1 a 100, puedes cambiarlo a new Random().nextInt(100) + 1;.

  2. Uso del Scanner: Asegúrate de cerrar el Scanner al final del programa para liberar recursos. Puedes hacerlo añadiendo teclado.close(); justo antes de que termine el método main.

  3. Mensajes de salida: Actualmente, el programa informa al usuario si el número ingresado es mayor o menor que el número generado. Esto es correcto, pero si deseas que el juego sea un poco más desafiante, podrías considerar no dar pistas sobre si el número es mayor o menor.

  4. Formato de impresión: No es necesario usar el signo + antes de numeroIngresado y generado en las funciones printf. Puedes simplemente usar %d para imprimir los números.

Aquí tienes una versión ajustada del código con estas sugerencias:

import java.util.Random;
import java.util.Scanner;

public class Adivinacion {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int intento = 0;
        int numeroIngresado = 0;

        int generado = new Random().nextInt(100) + 1; // Cambiado para rango 1-100

        while (intento < 5) {
            System.out.println("Ingrese un número:");
            numeroIngresado = teclado.nextInt();
            if (numeroIngresado != generado && numeroIngresado < generado) {
                System.out.printf("Su numero %d no es correcto y es menor al número esperado\n", numeroIngresado);
                intento++;
            } else if (numeroIngresado != generado && numeroIngresado > generado) {
                System.out.printf("Su numero %d no es correcto y es mayor al número esperado\n", numeroIngresado);
                intento++;
            } else {
                System.out.printf("Felicidades su número %d es el correcto!\n", numeroIngresado);
                break;
            }
        }
        if(intento == 5){
            System.out.printf("El numero generado era %d", generado);
        }

        teclado.close(); // Cerrar el Scanner
    }
}

Espero que estas sugerencias te sean útiles. ¡Espero que te diviertas con tu juego de adivinación! Espero haber ayudado y buenos estudios.