チャレンジ
文字列として、または標準入力を介して印刷可能なASCII文字の長方形のグリッドが与えられた場合、非スペース文字を下の山に折りたたむ関数またはプログラムを記述します。
ルール:
- 出力は、入力と同じ次元と文字を持ちます。
- 非空白文字は、
(row a,column b)空白文字持つことができない' 'で(a-1, b)、(a-1,b-1)あるいは(a-1,b+1)行が一番下から上に番号が付けられ、。これにより、すべての垂直杭が横に倒れるという結果になります。 - スペース以外の文字は、ほとんどの
(initial height - final height)場所で左または右に移動できます(図1を参照)。 - 画面から文字が落ちることなく、画像が折りたたむのに十分なスペースがあると想定できます。
図1:それぞれ@#$として示されているキャラクターの最終的な位置x,y,z。
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
文字が崩壊する順序は自由に選択できます。末尾のスペースは大丈夫ではありませんが、末尾の改行は大丈夫です。
これはcode-golfなので、バイト単位の最短回答が勝ちです!
例
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
1つの可能な出力:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...



