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

Esta es mi solución

Buenas noches, este reto fue divertido, me gustaria recibir feedbacks para aumentar mi nivel

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

public class Desafio {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numeroRandom = new Random().nextInt(101); // 0 a 100 inclusive
int intentos = 5;
int numero = -1;

    String inicio = """
            Bienvenido al juego de el numero alazar del 0 al 100
            Contiene 5 intentos para ganar :)
            Iniciemos el juego
            Digita un numero del 0 al 100:
            """;
    System.out.println(inicio);

    while (intentos > 0) {
        try {
            numero = sc.nextInt();

            if (numero < 0 || numero > 100) {
                System.out.println("Recuerda: el número debe estar entre 0 y 100.");
                intentos--;
                continue;
            }

            if (numero == numeroRandom) {
                System.out.println("Felicidades, ganaste! El número era: " + numeroRandom);
                System.out.println("Intentos restantes: " + intentos);
                break;
            } else {
                intentos--;
                if (numero < numeroRandom) {
                    System.out.println("El número es mayor. Te quedan " + intentos + " intentos.");
                } else {
                    System.out.println("El número es menor. Te quedan " + intentos + " intentos.");
                }
            }

        } catch (InputMismatchException e) {
            System.out.println("Entrada no válida. Debes ingresar un número.");
            sc.next();
            intentos--;
        }

        if (intentos == 0) {
            System.out.println("Perdiste, el número era: " + numeroRandom);
        }
    }
}

}

1 respuesta

Hola Christian, espero que estés bien

¡Qué bueno que te divertiste con el reto! Tu solución para el juego de adivinanzas se ve bastante sólida y cumple con los requisitos del desafío. Aquí tienes algunos comentarios y sugerencias que podrían ayudarte a mejorar o refinar tu código:

  1. Manejo de Excepciones: Has hecho un buen trabajo manejando la excepción InputMismatchException para entradas no válidas. Esto es crucial para evitar que el programa se bloquee si el usuario ingresa algo que no sea un número.

  2. Mensajes al Usuario: Los mensajes que proporcionas al usuario son claros y útiles. Esto es importante para que el usuario entienda lo que está pasando en cada paso del juego.

  3. Uso de continue: Estás utilizando continue después de verificar si el número está fuera del rango permitido. Esto es correcto, ya que permite al usuario intentar nuevamente sin perder un intento adicional.

  4. Estructura del Código: La estructura de tu código es clara y fácil de seguir. Sin embargo, podrías considerar mover algunos mensajes a métodos separados para hacer el main más limpio y modular. Por ejemplo, podrías tener un método para mostrar las instrucciones iniciales.

  5. Optimización Menor: Aunque no es necesario, podrías inicializar numero dentro del bucle para que quede claro que su valor inicial no importa fuera del contexto de cada intento.

  6. Pequeña Mejora Visual: Podrías agregar una línea en blanco antes de cada nuevo intento para mejorar la legibilidad de la salida en la consola.

En general, tu implementación es muy buena y es un excelente ejercicio para practicar la lógica de control de flujo y manejo de excepciones en Java. ¡Sigue así!

Espero haber ayudado y buenos estudios!