すべてのASCII文字のうち、それらの一部が同じ基本文字の回転であるグループを形成していることは簡単にわかります。たとえば、V > ^ <。これにより、90度の倍数で回転できるASCIIアートを構築できる可能性があります。
チャレンジ
あなたの目標は、ASCIIアートと、それをSTDINから回転させる度数を受け入れ、回転したASCIIアートをSTDOUTに印刷するプログラムをゴルフすることです。
入力の最初の行で、プログラムは数値Nを受け取ります。この数値は、ASCIIアートの幅と高さを表します。
その後、それぞれ正確にN文字のN行が追加されます(改行はこの数にはカウントされません)。アートのサイズは常に正方形になりますが、正方形にするためにスペースの形でパディングが含まれることがあります。
最後の行にもう1つ、90、180、または270の数字が表示されます。これは、画像を時計回りに何度回転させるかを表します。
注:入力画像には、正しい量だけ回転できる文字のみが含まれます。入力がこれらの要件に正確に一致しない場合、特定の動作は必要ありません。
出力として、プログラムは各行の後に改行を付けて、N文字の正確にN行を印刷する必要があります。オリジナルの各文字が回転したバージョンに置き換えられ、画像内の正しい場所に移動されるように、画像を回転させる必要があります。
例(あまり美しくないASCIIアート)
入力
5
<- ||
| |V
+->+
|O
<--+
90
出力
^ +-^
| | |
| V
+-+--
O <-
(90と270による回転は、文字が正方形ではないため、あまり良く見えません)
入力
6
+ /\ +
| \ \|
( \/|
\ )
I \ /
:) V $
180
出力
$ ^ (:
/ \ I
( \
|/\ )
|\ \ |
+ \/ +
必要なサポートされている文字
すべての回転(90、180、および270)で、プログラムは回転できる必要があります。
- スペース、
+、@、X及びOその決して変更 V><^|-および\/(180度回転しても同じままです)
180度回転するには、これらの追加文字をサポートする必要があります
INZ%:0=S~$#同じままPd、()、[]、{}、MW、および96
P d, ( ), [ ], { }, M W, and 9 690度または270度回転させることはできますか?
v、これはサポートされている文字ではありません。大文字であることを意図していたと思いますV。また、その最後の行は5文字になるように埋め込まれません。