Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Juego de adivinanza

Sugerencias, comentarios, feedback

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

public class Main {
    public static void main(String[] args) {
        // create a program that simulates a guessing game. The program
        // must generate a random number between 0 and 100, and ask the user to try
        // to guess that number in a maximum of 5 attempt.
        // On each attempt, the program must report whether the number entered by
        // user is greater or less than the generated number.

        int random = new Random().nextInt(100);
        int attempt = 5;
        Scanner scn = new Scanner(System.in);

        System.out.println("Intenta adivinar el número secreto, tienes 5 intentos");
        while(attempt > 0){
            System.out.println("Ingresa el número que creas que es");
            int number = scn.nextInt();
            if(number == random){
                System.out.println("Felicidades, ganaste el juego");
            }else{
                if(number > random){
                    System.out.println("El numero es menor");
                }else{
                    System.out.println("El numero es mayor");
                }
                System.out.println("Intenta de nuevo");
                attempt--;
            }
        }
            System.out.println("Has perdido!");




    }
}
1 respuesta

¡Hola Juan!

Excelente, muchas gracias por compartir tu solución, analizandola un poco parece que tu código tiene un pequeño problema en la lógica del bucle while. Después de cada intento, deberías reducir el número de intentos restantes, pero en tu código actual, estás disminuyendo el número de intentos incluso cuando el usuario adivina el número correcto. Esto puede llevar a que el mensaje "Has perdido" se imprima incluso si el usuario ha ganado.

Aquí tienes una versión corregida de tu código:

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

public class Main {
    public static void main(String[] args) {
        int random = new Random().nextInt(100);
        int attempt = 5;
        Scanner scn = new Scanner(System.in);

        System.out.println("Intenta adivinar el número secreto, tienes 5 intentos");
        while(attempt > 0){
            System.out.println("Ingresa el número que creas que es");
            int number = scn.nextInt();
            if(number == random){
                System.out.println("¡Felicidades, ganaste el juego!");
                break; // Sale del bucle si el usuario adivina el número
            } else {
                if(number > random){
                    System.out.println("El número es menor");
                } else {
                    System.out.println("El número es mayor");
                }
                attempt--;
                if(attempt > 0) {
                    System.out.println("Intenta de nuevo");
                }
            }
        }
        if(attempt == 0) {
            System.out.println("¡Has perdido!");
        }
    }
}

Con estos cambios, el mensaje "Has perdido" solo se imprimirá si el usuario agota todos sus intentos sin adivinar el número.

Espero que esta corrección te ayude a solucionar tu problema. ¡Buena suerte con tu juego de adivinanzas en Java!

Espero haber ayudado y buenos estudios!

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