63 lines
2.2 KiB
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();
|
|
}
|
|
}
|