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

GeometricMedidas

import java.util.Scanner;

public class unidadMedida {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int intentos = 5;
        boolean volverAlInicio = true;

        // Banner de bienvenida
        System.out.println("╔══════════════════════════════════╗");
        System.out.println("║   BIENVENIDO A GEOMETRIC MEDIDA  ║");
        System.out.println("║    Crea y visualiza figuras      ║");
        System.out.println("╚══════════════════════════════════╝");

        while (volverAlInicio && intentos > 0) {
            System.out.println("\n=== MENÚ PRINCIPAL ===");
            System.out.println("1. Validar triángulo equilátero");
            System.out.println("2. Explorar todas las figuras");
            System.out.println("3. Salir");
            System.out.print("Seleccione una opción: ");

            try {
                int opcionMenu = Integer.parseInt(scanner.next());

                switch (opcionMenu) {
                    case 1:
                        intentos = crearTriangulo(scanner, intentos);
                        break;
                    case 2:
                        explorarFiguras(scanner);
                        break;
                    case 3:
                        volverAlInicio = false;
                        break;
                    default:
                        System.out.println("Opción no válida");
                }
            } catch (NumberFormatException e) {
                System.out.println("Error: Ingrese solo números");
            }
        }

        System.out.println("\nPrograma terminado. ¡Hasta pronto!");
        scanner.close();
    }

    public static int crearTriangulo(Scanner scanner, int intentos) {
        System.out.println("\n=== VALIDADOR DE TRIÁNGULO ===");
        System.out.println("Ingrese 3 lados iguales (enteros):");

        int[] lados = new int[3];

        for (int i = 0; i < 3 && intentos > 0; i++) {
            System.out.print("Lado " + (i + 1) + ": ");
            String input = scanner.next();

            if (input.contains(".") || input.contains(",")) {
                System.out.println("¡Solo enteros! Pierdes un intento");
                intentos--;
                i--;
                continue;
            }

            try {
                lados[i] = Integer.parseInt(input);
            } catch (NumberFormatException e) {
                System.out.println("¡Número inválido! Pierdes un intento");
                intentos--;
                i--;
            }
        }

        if (intentos > 0) {
            if (lados[0] == lados[1] && lados[1] == lados[2]) {
                System.out.println("\n¡Triángulo válido!");
                dibujarTriangulo(lados[0]);
            } else {
                System.out.println("\n✖ No es equilátero");
                intentos--;
            }
        }

        if (intentos <= 0) {
            System.out.println("\n❌ Sin intentos disponibles");
        }

        return intentos;
    }

2 respuestas
    public static void explorarFiguras(Scanner scanner) {
        System.out.println("\n=== CATÁLOGO DE FIGURAS ===");
        System.out.println("3. Triángulo       6. Hexágono");
        System.out.println("4. Cuadrado       7. Heptágono");
        System.out.println("5. Pentágono      8. Octágono");
        System.out.print("Seleccione el número de lados (3-8): ");

        try {
            int lados = Integer.parseInt(scanner.next());

            System.out.println("\n════════════════════════════");
            switch (lados) {
                case 3:
                    System.out.println("TRIÁNGULO (3 lados)");
                    dibujarTriangulo(5);
                    break;
                case 4:
                    System.out.println("CUADRADO (4 lados)");
                    dibujarCuadrado(5);
                    break;
                case 5:
                    System.out.println("PENTÁGONO (5 lados)");
                    dibujarPentagono();
                    break;
                case 6:
                    System.out.println("HEXÁGONO (6 lados)");
                    dibujarHexagono();
                    break;
                case 7:
                    System.out.println("HEPTÁGONO (7 lados)");
                    dibujarHeptagono();
                    break;
                case 8:
                    System.out.println("OCTÁGONO (8 lados)");
                    dibujarOctagono();
                    break;
                default:
                    System.out.println("Opción no disponible");
            }
            System.out.println("════════════════════════════");

        } catch (NumberFormatException e) {
            System.out.println("Error: Ingrese un número");
        }
    }

    // Métodos de dibujo mejorados
    public static void dibujarTriangulo(int size) {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size - i - 1; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < 2 * i + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    public static void dibujarCuadrado(int size) {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (i == 0 || i == size-1 || j == 0 || j == size-1) {
                    System.out.print("* ");
                } else {
                    System.out.print("  ");
                }
            }
            System.out.println();
        }
    }

    public static void dibujarPentagono() {
        System.out.println("  /\\");
        System.out.println(" /  \\");
        System.out.println("/____\\");
        System.out.println("|    |");
        System.out.println("|____|");
    }

    public static void dibujarHexagono() {
        System.out.println("  /\\");
        System.out.println(" /  \\");
        System.out.println("/    \\");
        System.out.println("\\    /");
        System.out.println(" \\__/");
    }

    public static void dibujarHeptagono() {
        System.out.println("  _____");
        System.out.println(" /     \\");
        System.out.println("/       \\");
        System.out.println("\\       /");
        System.out.println(" \\_____/");
    }

    public static void dibujarOctagono() {
        System.out.println("  /----\\");
        System.out.println(" /      \\");
        System.out.println("/        \\");
        System.out.println("\\        /");
        System.out.println(" \\______/");
    }
}

¡Hola Jhon! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

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