Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

[Proyecto] Mi solucion y duda con codigo

Companeros buenas noches

Un gusto poder saludarles, si bien creo segui las instrucciones item por item y cumpli con todos los requisitos mi programa funciona, solo que hay un pequeno detalle que no se como solucionarlo

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

public class juegoAdivinarNumero { public static void main(String[] args) { Scanner teclado = new Scanner(System.in); int random = new Random().nextInt(100); int valorIngresado = 0; int contador = 1; int maxIntentos = 5;

    System.out.println("Vamos a jugar adivinar un numero secreto");
    System.out.println("Introduce un numero entre 1 - 100");
    System.out.println("Tienes unicamente 5 intentos");
    System.out.println(random);
    for (int i = 0; i < maxIntentos; i++)
    {
        System.out.println("Ingresa tu opcion de intento " + contador);
        valorIngresado = teclado.nextInt();
        contador++;


        if (valorIngresado > random)
        {
            System.out.println("El numero sercreto es menor");
        }
        else if (valorIngresado < random)
        {
            System.out.println("El numero sercreto es mayor");
        }
        else
        {
            System.out.println("Felicidades Acertaste el numero");
            break;
        }
    }// finaliza el ciclo for
}//finaliza el main

}

al final me da un mensaje de que el numero es mayor o menor dependiendo del valor del ramdom pero al ser el ultimo intento no se como hacer para que ese ultimo mensaje no salga, he intentado de mil formas y no puedo solucionarlo, de antemano por su ayuda gracias

3 respuestas
solución!

Buenas Julio, espero te encuentres bien.

Con respecto a tu duda, una de las soluciones que se me ocurren es la de el ultimo else hacerlo un else if, en donde preguntes que si es igual al numero: else if(valorIngresado == random) { System.out.println("Felicidades Acertaste el numero"); break; }

O directamente iniciar con ese if ("if(valorIngresado == random)") y en los else if siguientes poner las otras condiciones.

Seguramente existen otras formas, espero haber solucionado tu duda

Te sugiero que el numero que sea distinto al que se supone que debe acertar ponerle las condiciones de mayor y menor numero juntas en el mismo identado. No se como explicarlo tecnicamente pero asi funciona la logica de eso , asi trabajan mejores las condicionales. Y el uso de Else if es cuando si entre dos(o mas) condiciones se cumple solo una de ellas. Mi profesor me explico que en algunos ejercicios de lógica es mejor empezar con la "negación" o con condición que sabemos que no cumple. Empezarlo al revés de lo que haríamos a primera vista.

Te darás cuenta cuando practiques mas pero un ejemplo es el de números primos. En ese caso se debe empezar por sacar los números no primos y ahí resolver el código.

 if (num_random!=num_Jugador){
                if (num_random<num_Jugador) {
                    System.out.println("el numero que buscas en mas pequeño");
                } else if (num_random>num_Jugador) {
                    System.out.println("el numero que buscas es mas grande");
            }
            } else if (num_random==num_Jugador) {
                System.out.println("Felicidades! Adivinaste el numero!"+ num_random);
                break;
            }

Buenas noches Maximiliano & Alejandra,

Primeramente gracias por tomarse su tiempo en apoyarme con mi duda, inicialmente no se como se marcó o lo marqué como solucion pero sigo teniendo el mismo inconveniente, el problema principal no es que no funcione, el codigo tal cual lo tenía se ejecutaba sin mayores problemas y hacía lo que se suponía debe hacer, el problema con el código es que aún después del 5to intento me sigue apareciendo el mensaje "numero secreto mayor o menor", dependiendo del valor del random. He pensado en posibles alternativas porque el colocarle la condicion else if al final no hizo cambio.

En que parte se debe colocar alguna condicion adicional que al llegar el 5to intento y no adivinarlo mande un mesaje que diga "XYZ" y no me mande el mesaje de "numero secreto mayor o menor". O

Deberia deberia intentar cambiar a un ciclo while? aunque creo es mas trabajo solamente por una linea que sale de mas cuando se ejecuta jejeje.

De antemano gracias por su ayuda