ProjectAscii-Art/org/example/Main.java

181 lines
8.6 KiB
Java

package org.example;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main {
private static void menuMain() {
System.out.println("Bienvenido a AsciiArtAttack :)");
System.out.println("¿Qué deseas hacer hoy? ");
System.out.println("1.- Pintar figuras predeterminadas del sistema");
System.out.println("2.- Pintar figuras predeterminadas por archivos TXT");
System.out.println("3.- Realizar un Ascii Art manualmente y guardarlo");
System.out.println("4.- Salir del Sistema");
}
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
Scanner entrada2 = new Scanner(System.in);
Scanner entrada3 = new Scanner(System.in);
int opcion, opcion2, opcion3;
do {
System.out.println("Bienvenido a AsciiArtAttack :)");
System.out.println("¿Qué deseas hacer hoy? ");
System.out.println("1.- Pintar figuras predeterminadas del sistema");
System.out.println("2.- Pintar figuras predeterminadas por archivos TXT");
System.out.println("3.- Realizar un Ascii Art manualmente y guardarlo");
System.out.println("4.- Salir del Sistema");
opcion = entrada.nextInt();
switch (opcion) {
case 1:
do {
System.out.println("1.- Computadora normal");
System.out.println("2.- Enamorado");
System.out.println("3.- Salir");
opcion2 = entrada2.nextInt();
switch (opcion2) {
case 1: {
char[][] lienzo = new char[15][65];
Computadora computadora = new Computadora(15, 65, lienzo);
computadora.prepararMatriz(lienzo, 15, 65);
computadora.pintarComputadora1(lienzo);
computadora.paint(15, 65, lienzo);
break;
}
case 2: {
char[][] lienzo2 = new char[15][65];
Computadora computadora2 = new Computadora(15, 65, lienzo2);
computadora2.prepararMatriz(lienzo2, 15, 65);
computadora2.pintarComputadora2(lienzo2);
computadora2.paint(15, 65, lienzo2);
break;
}
case 3:
menuMain();
opcion = entrada.nextInt();
break;
default:
System.out.println("Digita una opcion correcta por favor");
}
} while (opcion2 != 3);
case 2:
try {
// Ruta del directorio que quieres listar
System.out.println("Escribe el nombre del archivo Ascii Art que quieres imprimir:");
String rutaDirectorio = "C:\\Users\\edgar\\OneDrive\\Escritorio\\6yo\\Desarrollo\\AscciArt";
// Crear un objeto File con la ruta del directorio
File directorio = new File(rutaDirectorio);
if (directorio.isDirectory()) {
// Obtener la lista de archivos en el directorio
File[] archivos = directorio.listFiles();
// Imprimir el nombre de cada archivo en la lista
System.out.println("Archivos .txt en " + rutaDirectorio + ":");
for (File archivo : archivos) {
if (archivo.isFile() && archivo.getName().endsWith(".txt")) {
System.out.println(archivo.getName());
}
}
} else {
System.out.println("La ruta especificada no corresponde a un directorio válido.");
}
Scanner tecladoTxt = new Scanner(System.in);
String nombreTxt = tecladoTxt.next();
File file = new File(rutaDirectorio, nombreTxt);
if (!file.exists()) {
System.out.println("El archivo especificado no existe.");
break;
}
Scanner reader = new Scanner(file);
while (reader.hasNextLine()) {
String line = reader.nextLine();
System.out.println(line);
Thread.sleep(500);
}
} catch (IOException e) {
System.out.println("Error de lectura/escritura: " + e.getMessage());
} catch (InterruptedException e) {
System.out.println("Interrupción de la ejecución: " + e.getMessage());
}
break;
case 3:
String line;
StringBuilder asciiArt = new StringBuilder();
Scanner scanner = new Scanner(System.in);
System.out.println("Bienvenido al creador de arte ASCII Art manual");
System.out.println("Realiza tu Ascii Art línea por línea. Presiona Enter después de cada línea. Escribe 'fin' para terminar.");
while (true) {
line = scanner.nextLine();
if (line.equals("fin")) {
break;
}
asciiArt.append(line).append("\n");
}
do {
System.out.println("Decide la opcion que deseas elegir ");
System.out.println("1.- Guardar");
System.out.println("2.- Visualizar");
System.out.println("3.- Copiar en el portapapeles");
System.out.println("4.- Salir de esta opcion");
opcion3 = entrada3.nextInt();
switch (opcion3) {
case 1:
System.out.println("Nombre para tu Ascii Art:");
Scanner teclado = new Scanner(System.in);
String nombre = teclado.next();
try {
FileWriter archivo = new FileWriter(nombre);
archivo.write(String.valueOf(asciiArt));
System.out.println("Ilustración guardada en " + nombre + ".txt");
archivo.close();
} catch (IOException e) {
System.err.println("Error al guardar la ilustración: " + e.getMessage());
}
break;
case 2:
System.out.println(asciiArt);
break;
case 3:
StringSelection seleccion = new StringSelection(String.valueOf(asciiArt));
Clipboard portapapeles = Toolkit.getDefaultToolkit().getSystemClipboard();
portapapeles.setContents(seleccion, null);
System.out.println("Texto copiado al portapapeles: ");
break;
case 4:
menuMain();
opcion = entrada.nextInt();
break;
default:
}
} while (opcion3 != 4);
case 4:
System.out.println("Saliendo...");
System.out.println("Que tengas un buen dia :)");
default:
System.out.println("Digita una opción correcta por favor...");
break;
}
} while (opcion != 4);
}
}