Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Duda en el juego adivinanza

Hola buenas tardes, mi juego funciona pero en esta condición que es cuando adivinas el numero en el ultimo intento imprime el mensaje "Felicidades le atinaste al numero..." y también el mensaje "No le atinaste al numero...". Como le darían solución a ese caso?

import java.util.Random;
import java.util.Scanner;
public class AdivinaNumero {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int numeroAleatorio = new Random().nextInt(100);
        int intentos = 0;
        System.out.println(numeroAleatorio);
        while(intentos < 5){
            System.out.println("Escribe el numero que intentas adivinar de 0 al 100");
            int numeroUsuario= teclado.nextInt();
            intentos++;
            if(numeroUsuario == numeroAleatorio){
                System.out.println("Felicidades le atinaste al numero que es " + numeroAleatorio +
                        " en el " + intentos + " intento.");
                break;
            }else if ((numeroUsuario > numeroAleatorio)) {
                System.out.println("Tu numero es mayor al que vas adivinar");
            } else {
                System.out.println("Tu numero es menor al que vas adivinar");
                }
            System.out.println("Vas en el " + intentos + " intento.");
        }
        if (intentos == 5) {
            System.out.println("No le atinaste al numero que es " + numeroAleatorio);
        }
    }
}

Nota: imprime el numero aleatorio al principio para que vean cual es

1 respuesta
solución!

Hola, veo que no estás considerando la condición del número de intentos dentro de tu bucle while. Con este detalle, siempre te mostrará en pantalla este mensaje puesto que tomará el valor de 5 siempre al finalizar, la corrección sería colocarlo dentro del bucle while.

import java.util.Random;
import java.util.Scanner;
public class AdivinaNumero {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int numeroAleatorio = new Random().nextInt(100);
        int intentos = 0;
        System.out.println(numeroAleatorio);
        while(intentos < 5){
            System.out.println("Escribe el numero que intentas adivinar de 0 al 100");
            int numeroUsuario= teclado.nextInt();
            intentos++;
            if(numeroUsuario == numeroAleatorio){
                System.out.println("Felicidades le atinaste al numero que es " + numeroAleatorio +
                        " en el " + intentos + " intento.");
                break;
            }else if ((numeroUsuario > numeroAleatorio)) {
                System.out.println("Tu numero es mayor al que vas adivinar");
            } else {
                System.out.println("Tu numero es menor al que vas adivinar");
            }
            System.out.println("Vas en el " + intentos + " intento.");
            
            //Aca se evalua si llego al numero limite de intentos
            if (intentos == 5) {
                System.out.println("No le atinaste al numero que es " + numeroAleatorio);
            }
        }

    }
}