Ze wszystkich znaków ASCII łatwo jest stwierdzić, że niektóre z nich tworzą grupy będące rotacjami tego samego podstawowego znaku. Na przykład V > ^ <. To pozwala na konstruowanie sztuki ASCII, która może być obracana o wielokrotności 90 stopni i nadal pozostaje sztuką ASCII.
Wyzwanie
Twoim celem jest zagranie w golfa w programie, który akceptuje grafikę ASCII i liczbę stopni, aby obrócić ją ze STDIN i drukuje obróconą grafikę ASCII do STDOUT.
W pierwszym wierszu wprowadzania program otrzyma numer N. Liczba ta reprezentuje szerokość i wysokość grafiki ASCII.
Otrzymasz następnie N kolejnych linii dokładnie N znaków (nowy wiersz nie jest liczony w tej liczbie). Wielkość sztuki zawsze będzie kwadratem, chociaż może mieć wypełnienie w postaci spacji, aby uczynić ją kwadratem.
Otrzymasz jeszcze jeden numer w ostatnim wierszu: 90, 180 lub 270. To pokazuje, o ile stopni należy obrócić zdjęcie w prawo.
Uwaga: Wprowadzony obraz będzie zawierał tylko znaki, które można obrócić o odpowiednią wartość. Jeśli dane wejściowe nie spełniają dokładnie tych wymagań, nie jest wymagane określone zachowanie.
Jako wynik program powinien wypisać dokładnie N linii N znaków, z nowymi liniami po każdej linii. Obraz należy obrócić, aby każdy znak w oryginale został zastąpiony wersją obróconą i został przeniesiony w odpowiednie miejsce na obrazie.
Przykłady (niezbyt piękna sztuka ASCII)
Wejście
5
<- ||
| |V
+->+
|O
<--+
90
Wynik
^ +-^
| | |
| V
+-+--
O <-
(Obroty o 90 i 270 nie będą wyglądać zbyt dobrze, ponieważ postacie nie są kwadratami)
Wejście
6
+ /\ +
| \ \|
( \/|
\ )
I \ /
:) V $
180
Wynik
$ ^ (:
/ \ I
( \
|/\ )
|\ \ |
+ \/ +
Wymagane obsługiwane znaki
W przypadku wszystkich obrotów (90, 180 i 270) program powinien mieć możliwość obracania:
- Przestrzenie,
+,@,XiOktóra nigdy się nie zmieniają V><^|-i\/(obrócone o 180 pozostają takie same)
W przypadku obrotu o 180 stopni te dodatkowe znaki muszą być obsługiwane
INZ%:0=S~$#które pozostają takie samePd,(),[],{},MW, I96
P d, ( ), [ ], { }, M W, and 9 6czy kiedykolwiek można obrócić o 90º lub 270º?
v, które nie są obsługiwanymi postaciami. Zakładam, że miała to być wielka literaV. Ponadto ostatnia linia nie jest wypełniona długością 5 znaków.