Trong số tất cả các ký tự ASCII, có thể dễ dàng nói rằng một số trong số chúng tạo thành các nhóm là các phép quay của cùng một ký tự cơ bản. Ví dụ , V > ^ <
. Điều này cho phép khả năng xây dựng nghệ thuật ASCII có thể xoay theo bội số 90 độ và vẫn là nghệ thuật ASCII.
Các thách thức
Mục tiêu của bạn là chơi một chương trình chấp nhận nghệ thuật ASCII và số độ để xoay nó từ STDIN và in nghệ thuật ASCII đã xoay sang STDOUT.
Trên dòng đầu tiên, chương trình của bạn sẽ nhận được một số N. Số này biểu thị chiều rộng và chiều cao của nghệ thuật ASCII.
Sau đó, bạn sẽ nhận được thêm N dòng chính xác của N ký tự (dòng mới không được tính vào số này). Kích thước của nghệ thuật sẽ luôn là một hình vuông, mặc dù nó có thể có phần đệm ở dạng không gian để biến nó thành một hình vuông.
Sau đó, bạn sẽ nhận được thêm một số trên dòng cuối cùng: 90, 180 hoặc 270. Điều này thể hiện hình ảnh sẽ được xoay theo chiều kim đồng hồ bao nhiêu độ.
Lưu ý: Hình ảnh được nhập sẽ chỉ chứa các ký tự có thể được xoay theo số lượng chính xác. Nếu đầu vào không khớp chính xác với các yêu cầu này, không yêu cầu hành vi cụ thể nào.
Là đầu ra, chương trình của bạn sẽ in chính xác N dòng N ký tự, với dòng mới sau mỗi dòng. Hình ảnh phải được xoay sao cho mỗi ký tự trong bản gốc đã được thay thế bằng phiên bản xoay và đã được di chuyển đến đúng vị trí trong ảnh.
Ví dụ (nghệ thuật ASCII không đẹp lắm)
Đầu vào
5
<- ||
| |V
+->+
|O
<--+
90
Đầu ra
^ +-^
| | |
| V
+-+--
O <-
(Xoay theo 90 và 270 sẽ không trông rất tốt vì các ký tự không phải là hình vuông)
Đầu vào
6
+ /\ +
| \ \|
( \/|
\ )
I \ /
:) V $
180
Đầu ra
$ ^ (:
/ \ I
( \
|/\ )
|\ \ |
+ \/ +
Nhân vật được hỗ trợ cần thiết
Đối với tất cả các phép quay (90, 180 và 270), chương trình sẽ có thể xoay:
- Spaces,
+
,@
,X
vàO
không bao giờ thay đổi V
>
<
^
|
-
và\
/
(được quay bởi 180 chúng giữ nguyên)
Để xoay 180 độ, các ký tự bổ sung này phải được hỗ trợ
I
N
Z
%
:
0
=
S
~
$
#
vẫn giữ nguyênP
d
,(
)
,[
]
,{
}
,M
W
, Và9
6
P d, ( ), [ ], { }, M W, and 9 6
bao giờ có thể được quay 90 or hoặc 270º?
v
, không phải là ký tự được hỗ trợ. Tôi cho rằng nó có nghĩa là một chữ hoaV
. Ngoài ra, dòng cuối cùng trong nó không được đệm dài 5 ký tự.