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

Adivina el numero secreto

Me pueden dar una retroalimentacion por favor
import java.util.Random;
import java.util.Scanner;

public class Juego {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.println("Bienvenido al juego para adivinar un numero");
System.out.println("Escribe tu nombre por favor");
String Nombre = teclado.nextLine();

    int numeroSecreto = new Random().nextInt(10)+1;// genera el numero aleatorio entre 1 y 100
    int intentosTotales = 3;
    System.out.println(numeroSecreto);
    System.out.println("Hola " + Nombre + " tienes " + intentosTotales + " intentos para adivinar el numero secreto entre 1 y 10");

    for (int i = 1; i <= intentosTotales ; i++) {
        int intento = teclado.nextInt();
        System.out.println("Intento #" + intento + ": ");


        if (intento == numeroSecreto) {
            System.out.println("Felicidades " + Nombre + " adivinaste el numero secreto " + numeroSecreto + " en " + i + " intentos");
            return;
        } else if (intento < numeroSecreto) {
            System.out.println("El numero secreto es mayor");
        } else {
            System.out.println("El numero secreto es menor");
        }
    }
    System.out.println("Lo siento " + Nombre + " se acabaron tus intentos");
}

}

3 respuestas

hola, como vas, esto se no pidio 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); aqui esta la formula tu codigo tu codigo int numeroSecreto = new Random().nextInt(10)+1; yo lo deje como .nextInt(101), ademas se nos pide de cero hasta 100, si pones 100 va a llegar a 99.-

se te piden 5 intentos y pusiste 3;
en el caso del mensaje final System.out.println("Lo siento " + Nombre + " se acabaron tus intentos"); no indica cual era el numero que habia salido.-

revisar o darle una vuelta mas para lograr todo lo pedido
el if funciona super, cumpliendo.-

¡Buena suerte!

Hola

Mi solución al desafío es la siguiente:

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

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
public class Main {
    public static void main(String[] args) {
        //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
        // to see how IntelliJ IDEA suggests fixing it.
        System.out.printf("HOLA, Bienvenido al juego adivina el numero ");
        int numeroAleatorio = new Random().nextInt(100);
        //System.out.println(numeroAleatorio);
        System.out.println("Tienes 5 intentos para adivinar el numero seleccionado:");
        int contador = 0;

        for (int i = 1; i <= 5; i++) {
            System.out.println("Intento " + i + " ingresa un numero: " );
            Scanner teclado= new Scanner(System.in);
            int numero = teclado.nextInt();
            contador++;

            if (numero < numeroAleatorio) {
                System.out.println("Casi adivinas, pero el numero ingresado es menor al numero seleccionado, sigue intentando");
            } else if (numero > numeroAleatorio) {
                System.out.println("Casi, pero el numero ingresado es mayor al numero seleccionado, sigue intentando");
            }else {
                System.out.println("Perfecto, adivinaste el numero!!");
            break;
            }

        }
        if (contador == 5) {
            System.out.println("Lo siento ,no adivinaste el  numero en los 5 intentos que tenias :(");
        }
    }
}
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.

Hola mira:
int numeroAleatorio = new Random().nextInt(100); va a llegar a 99 y no a 100.-

probe el juego y me aroja estos errores
HOLA, Bienvenido al juego adivina el numero Tienes 5 intentos para adivinar el numero seleccionado:
Intento 1 ingresa un numero:
56
Casi, pero el numero ingresado es mayor al numero seleccionado, sigue intentando
Intento 2 ingresa un numero:
70
Casi, pero el numero ingresado es mayor al numero seleccionado, sigue intentando
Intento 3 ingresa un numero:
90
Casi, pero el numero ingresado es mayor al numero seleccionado, sigue intentando
Intento 4 ingresa un numero:
100
Casi, pero el numero ingresado es mayor al numero seleccionado, sigue intentando
Intento 5 ingresa un numero:
200
Casi, pero el numero ingresado es mayor al numero seleccionado, sigue intentando
Lo siento ,no adivinaste el numero en los 5 intentos que tenias :(

...Program finished with exit code 0
Press ENTER to exit console.

No indica que es entre 0 y 100

en tu for tienes el scaner todas las veces osea con que lo pusieras afuera del ciclo optimiza tu codigo y lo llamas solamente
for (int i = 1; i <= 5; i++) {
System.out.println("Intento " + i + " ingresa un numero: " );
Scanner teclado= new Scanner(System.in);
int numero = teclado.nextInt();
numero = 0;
contador++;

quedaria algo asi

Scanner teclado= new Scanner(System.in);
for (int i = 1; i <= 5; i++) {
System.out.println("Intento " + i + " ingresa un numero: " );
numero = teclado.nextInt();
contador++;

Tu contador siempre llegara a 5, mira

if (contador == 5) {
System.out.println("Lo siento ,no adivinaste el numero en los 5 intentos que tenias :(");
}

lo puedes arreglar con un distinto de

if (contador == 5 && numero != numeroAleatorio) {
System.out.println("Lo siento ,no adivinaste el numero en los 5 intentos que tenias :(");
}

y al final en System.out.println("Lo siento ,no adivinaste el numero en los 5 intentos que tenias :(");

deberias indicar que numero era
System.out.println("Lo siento ,no adivinaste el numero en los 5 intentos que tenias :( " + "El numero era: " + numeroAleatorio);

Espero haber contribuido en algo