4
respuestas

Hola, buenas noches a todos. Comparto el codigo del desafio. Saludos!

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

public class SecretNumber {

public static void main(String[] args) {
    Scanner teclado = new Scanner(System.in);
    Random random = new Random();

    int secretNumber = random.nextInt(101);
    int maxAttempts = 5;

    System.out.println("Intenta adivinar el número secreto (entre 0 y 100):");

    for (int attempt = 1; attempt <= maxAttempts; attempt++) {
        System.out.print("Intento " + attempt + ": Ingresa un número: ");
        int userNumber = teclado.nextInt();

        if (userNumber == secretNumber) {
            System.out.println("¡Felicidades! ¡Has encontrado el número secreto!");
            break;
        } else if (userNumber > secretNumber) {
            System.out.println("El número ingresado es mayor que el número secreto.");
        } else {
            System.out.println("El número ingresado es menor que el número secreto.");
        }

        if (attempt == maxAttempts) {
            System.out.println("Has agotado tus intentos.");
        }
    }

    System.out.println("El número secreto era: " + secretNumber);

    teclado.close();
}

}

4 respuestas

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

Aprecio tu participación en el foro. Quiero recordarte que este espacio está pensado principalmente para aclarar dudas y hacer preguntas. No es necesario compartir cada actividad detalladamente.

¡Gracias por tu comprensión y por contribuir a hacer del foro un lugar enfocado en el intercambio útil y constructivo! Si prefieres discutir o compartir comentarios sobre el contenido te invitamos a unirte a nuestra comunidad en Discord.

Saludos.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Muy bien Brenda, gracias por la aclaracion. Interpreto que estos espacios son (exclusivamente) para consultas y dudas acerca de los proyectos que estamos realizando. Saludos!

Yo hice así el juego podrías decirme si esta mal?

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

public class JuegoAdivinacion {

public static void main(String[] args) {
    System.out.println("Bienvenido al juego de advinanza");

    //Instrucciones en bloque de texto
    System.out.println("""
            Instrucciones: 
            Ingresa un numero entre el 1 y el 100
            Maximo 5 intentos para adivinar el numero
            """);
    //Crear numero aleatorio entre el 1 y el 100
    int numeroSecreto = new Random().nextInt(100) * 1;
    //Numero maximo de intentos para el usuario
    int maxIntentos = 5;

    //Ingreso de datos
    Scanner datos = new Scanner(System.in);



    //Ciclo o bucle for en donde el usuario tendra como maximo 5 intentos
    for ( int intento = 1; intento <= maxIntentos; intento++) {

        //Ingreso de datos + el numero de intenos del usuario
        System.out.println("Intento numero: " + intento +" Ingresa un numero entre el 1 y el 100");

        //Guardar variable de datos en intentoUsuario
        int intentoUsuario = datos.nextInt();

        //Condicional de intentos
        if (intentoUsuario == numeroSecreto) {
            System.out.println("Felicidades acertaste");
            break;



        }else if (intentoUsuario > numeroSecreto) {

            System.out.println("El numero secreto es menor ");

        } else {

            System.out.println("El numero secreto es mayor");
        }

        //Condicional de numero maximo de intentos
        if (intento == maxIntentos) {

            System.out.println("Has agotado los 5 intentos");

            //Mensaje salida en bloque con formato para poder agregar variables
            String mensaje = """
                    Lo siento has perdido 
                    El numero secreto era: %d
                    
                    """.formatted(numeroSecreto);
            System.out.println(mensaje);
        }

    }

    datos.close();

}

}

Hola Aldo, gracias por tu mensaje. Antes que nada quisiera comentarte que soy bastante principiante en todo este mundo de la programación por lo tanto no creo que yo sea la persona indicada para poder darte mayores consejos u observaciones (y que sí querría poder hacerlo! jajaja).

A mi humilde parecer tu desafío esta muy bien resuelto, cumple con todos los requisitos y esta muy bien ordenado. Creo que, a esta altura, sabemos que no hay una única forma de resolver las cosas en la programación. Por supuesto y para los que más experiencia tienen hay formas "mejores" o más convenientes (por un motivo u otro) pero eso ya será para más adelante, digamos "hilando fino". Por ahora, si se logra resolver el problema, bienvenido.

Tu usaste un for loop, yo utilicé un while, pero el resultado es lo mismo, se cumplen las expectativas o requisitos solicitados.

Interpreto que este desafio se puede resolver usando un "for loop" con condicionales if y else if, usando un while (también con condicionales if y else if) o también con un switch. Tal vez haya todavía más posibilidades a utilizar (seguramente).

La única duda que me quedó, revisando tu codigo, es la parte donde generas el número random. Por lo que tengo entendido sería apropiado utilizar:

int numeroSecreto = new Random().nextInt(100) + 1; (o sea, con el signo "+") Eso deberia generar un numero aleatorio entre 1 y 100.

Tu utilizaste:

int numeroSecreto = new Random().nextInt(100) * 1; (utilizando el signo de multiplicación, no se que efecto se logrará, tal vez el mismo que usando el signo +, o tal vez no.

Puede que ocasione el mismo resultado, no lo se, pero es lo unico que podría sugerirte que revises. De cualquier forma, si esta funcionando correctamente, eso es lo que importa y eso es lo que debería implicar que es correcto también escribirlo de esa forma.

saludos! Daniel