Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Ejercicio juego de adivinanzas.

/*
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.

Consejos:

Para generar un número aleatorio en Java: new Random().nextInt(100);

Utiliza el Scanner para obtener los datos del usuario.

Utiliza una variable para contar los intentos.

Utiliza un bucle para controlar los intentos.

Utiliza la instrucción ‘break;’ para salir del bucle.
*/

//importamos las clases que vamos a ocupar
//random para generar un número aleatorio
import java.util.Random;
//scanner sirve para leer lo que introduzca el usuario
import java.util.Scanner;

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

    //Creando un objeto de la clase Random y guardándolo en una variable llamada random para poder usarlo después.
    Random random = new Random();
    //Creando un objeto de la clase scanner y guardándolo en una variable, Para permitir que que se pueda leer y usar la info que el usuario introduzca
    Scanner scanner = new Scanner(System.in);

    // flag que actua como interruptor , cambia a true cuando ocurre algo específico
    boolean encontrado = false;
    //Se declara afuera y se usa adentro.
    int number ; //lo hago asi porque de otra forma con el scanner.nextInt() el programa leeria antes de siquiera recibir algo
    int secretNumber = random.nextInt(101);


    //creamos un bucle el cual dará 5 oportunidades de adivinar el número
    for (int i = 0; i < 5; i++) {
        //el programa necesita leer el numero del usuario Una vez al inicio de cada vuelta
        System.out.println("Ingresa un número de 0 a 100: ");
        //Se declara afuera y se usa adentro. si o Cada vuelta estarías creando una variable nueva en lugar de reutilizar la misma.
        //lee lo que introduzca el usuario
        number = scanner.nextInt();
        //condicional si el numero es mayor que el secreto
        if (number > secretNumber) {
            System.out.println("El número es mayor que el número secreto, Por favor ingresa otro número:  ");

            //condicional si el numero es menor que el secreto
        } else if (number < secretNumber) {
            System.out.println("El número es menor que el número secreto, Por favor ingresa otro número:  ");


            //condicional si el numero es el número secreto
        } else {
            //el interruptor se prende cuando se encontró el numero y libera el mensaje de victoria
            encontrado = true;
            System.out.println("Felicidades , encontraste el numero secreto: " + secretNumber);
            // sale abruptamente del bucle
            break;
        }

        //en caso de que se agoten las oportunidades es decir que el interruptor nunca se encienda
        // imprimira el mensaje de derrota
    }
    if (encontrado==false){
        System.out.println("Has agotado todos los intentos , más suerte para la próxima");
    }

}

}

2 respuestas

Muy buen ejercicio, ,me puso a pensar mucho y cada vez me voy familiarizando con java más

¡Hola Emmanuel, espero que estés bien!

Tu código para el juego de adivinanzas se ve bastante bien estructurado y parece que cubre todos los requisitos del ejercicio. Sin embargo, hay un pequeño detalle que podrías ajustar para mejorar la claridad y la funcionalidad del programa.

  1. Generación del número aleatorio: Estás generando el número aleatorio entre 0 y 100 con random.nextInt(101), lo cual está correcto. Asegúrate de que esto es lo que deseas, ya que nextInt(101) generará un número entre 0 y 100 inclusive.

  2. Uso del Scanner: Recuerda siempre cerrar el objeto Scanner al final del uso para evitar posibles fugas de recursos. Puedes hacerlo añadiendo scanner.close(); al final del main después de que el bucle haya terminado.

  3. Mensajes al usuario: Los mensajes que proporcionas son claros. Solo asegúrate de que el usuario entienda que tiene un número limitado de intentos.

Aquí tienes un pequeño ejemplo de cómo podrías cerrar el Scanner al final:

// ... (tu código existente)

// en caso de que se agoten las oportunidades es decir que el interruptor nunca se encienda
// imprimira el mensaje de derrota
if (!encontrado) {
    System.out.println("Has agotado todos los intentos, más suerte para la próxima");
}

// Cierra el Scanner para liberar recursos
scanner.close();

Espero que estos consejos te sean útiles y que tu programa funcione perfectamente. ¡Sigue adelante con tu aprendizaje!

Espero haber ayudado y buenos estudios!