181 lines
8.6 KiB
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);
|
|
}
|
|
}
|
|
|