3
respuestas

duda

Quice desarrollar este desafio deacuerdo como usted lo sugiere, sin embargo cuando lo ejecuto, el numero generado es mayor que 100. Me podria por favor indicar cual es el error que estoy cometiendo?

public class desafiojuego { public static void main(String[] args) { Scanner lector = new Scanner(System.in); int numeroGenerado = new Random().nextInt(100);//genera un numero aleatorio entre 1 y 100 int intentos = 0; while (intentos < 5){ System.out.println("Introduzca un numero entre 1 y 100:"); int numeroDelUsuario = lector.nextInt(); intentos++;

        if (numeroDelUsuario == numeroGenerado){
            System.out.println("Felicidades, adivinaste el numero en " + intentos + "intentos!");
            break; //Interrumpe el loop while
        } else if (numeroDelUsuario < numeroGenerado) {
            System.out.println("El numero que escribiste es menor al numero generado");
            
        }else {
            System.out.println("El numero que escribiste es mayor al numero generado");
        }
    }
    if (intentos == 5)
        System.out.println("Lo siento, no conseguiste adivinar el numero en 5 intentos. El numero era" + numeroGenerado);
}

}

3 respuestas

si funciona correctamente, lo siento

¡Hola Samy, espero que estés bien!

Entiendo tu duda. Parece que el problema está en la generación del número aleatorio. El método nextInt(100) genera un número aleatorio entre 0 (inclusive) y 100 (exclusivo), es decir, genera un número entre 0 y 99, por lo que al sumarle 1 al número generado obtendrás un número entre 1 y 100, no entre 1 y 99 como se espera.

Para solucionar esto, puedes simplemente sumar 1 al número generado para obtener un número entre 1 y 100 de la siguiente manera:

int numeroGenerado = new Random().nextInt(100) + 1;

Con este cambio, el número generado estará en el rango deseado y el juego debería funcionar correctamente.

Espero que esta solución te ayude a resolver tu problema. ¡Buena suerte con tu juego de adivinanzas!

Espero haber ayudado y buenos estudios!

Siendo Honesto, no encontré error en este código que haz proporcionado; sin embargo cuando se digita el último intento considero que no debería imprimir ya el comparativo entre numeroUsuario y el numeroGenerado, sino que solo podria imprimir directamente que se ha fallado mostrando igual el numeroGenerado