ASCII.ART/ASCIIPuzzle.java

63 lines
2.2 KiB
Java

import java.util.*;
public class ASCIIPuzzle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Imagen ASCII original ordenada
String[] originalArt = {
" *** ", // 1
" ** ** ", // 2
" ** ** ", // 3
" ** ** **** ", // 4
" ** ** ** ****", // 5
" ** ** * ** **", // 6
" ** * * ** *** **", // 7
" ** * * ** ** *", // 8
" ** ** ** ** **",// 9
" ** ** **", // 10
" * *", // 11
" * *", // 12
" * 0 0 *", // 13
" * / @ \\ *", // 14
" * \\__/ \\__/ *", // 15
" * W *", // 16
" ** ** ", // 17
" ***** "// 18
};
// Crear una copia desordenada
List<String> scrambledArt = new ArrayList<>(Arrays.asList(originalArt));
Collections.shuffle(scrambledArt);
while (true) {
// Mostrar el arte desordenado
System.out.println("\nOrdena el arte ASCII:");
for (int i = 0; i < scrambledArt.size(); i++) {
System.out.println((i + 1) + ": " + scrambledArt.get(i));
}
// Pedir cambio de líneas
System.out.print("\n¿Qué línea cambias? (1-" + scrambledArt.size() + "): ");
int firstIndex = scanner.nextInt() - 1;
System.out.print("¿Por cuál la cambias? (1-" + scrambledArt.size() + "): ");
int secondIndex = scanner.nextInt() - 1;
// Intercambiar líneas
Collections.swap(scrambledArt, firstIndex, secondIndex);
// Verificar si está ordenado
if (Arrays.equals(scrambledArt.toArray(), originalArt)) {
System.out.println("\n¡Felicidades! Has ordenado el arte ASCII:");
for (String line : originalArt) {
System.out.println(line);
}
break;
}
}
scanner.close();
}
}