見て!ASCII迷路です!スー・クーザー、アメーズボールなど。
+-+-----+---+
| | | |
| | ++ | |
| | ++ +-+ |
| | |
+-------+ | |
| | |
+---------+-+
しかし、しかし、しかし...迷路のすべての部分がどの方向に向かっているのかを考えるのは苦痛です。レイアウトを描きたいだけで、迷路は時間をかけずにすっごくクールになります。
これを単に描くことができたら...
#############
# # # #
# # ## # #
# # ## ### #
# # #
######### # #
# # #
#############
それはとても甘いでしょう!
ルール(ルールはクールだから):
- 文字列をアスキー迷路に変換して結果を出力するコードを記述します。
- 空白以外の文字は壁として読み取られます。
- 壁の各文字は、隣人に基づいてどのキャラクターを決定するか(北、南、東、西の方向のみ)。
- 文字に非空白文字がない場合、プラス記号(+)になります。
- 文字に垂直(南北)方向と水平(東西)方向の両方に隣接がある場合、プラス記号(+)になります。
- 文字が垂直(南北)方向にのみ隣接している場合、パイプ記号(|)になります。
- 文字が水平(東西)方向にのみ隣接している場合、マイナス記号(-)になります。
- 入力は単一の文字列(改行文字で区切られた行、または文字列の配列)にすることができます。
- 入力文字はすべて印刷可能なASCII文字になります。拡張文字セットを扱う必要はありません。
- 古い言語を使用してください。
- 行の前に空白がある場合、各行で同じ量にする必要があります。出力の各行の後の空白は問題ありません。
- 最小バイト数で解決しようとします。
テストケース:
1:フレーム
入力:
##########
# #
# #
# #
##########
出力:
+--------+
| |
| |
| |
+--------+
2:クラシック迷路
入力:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
出力:
--------+-------+
| |
| --+-+ | ----+ |
| | | | | |
| + | | +---- | |
| | | | |
+-- | +----+- | |
| | | | | |
| --+ | ++ | -+
| | ++ |
+-----+-++----+--
3:緑の卵、男。
入力:
I do not like green eggs and ham.
I do not like them, sam I am.
Would you like them here or there?
I would not like them anywhere!
出力:
| ++ +++ ++++ +++++ +++- -++ ----
| ++ +++ ++++ +++++ +++ + +++
+-+++ +++ ++++ ++++ ++++ ++ +++---
| +++-+ +++ ++++ ++-+ +++++++++
4:つらら
入力:
Word Icicle!
Word Icicle
Word cicle
ord cicle
ord icle
ord i le
or i le
or i l
or l
or
r
出力:
++++ ++++++-
++++ ++++++
++++ +++++
+++ +++++
+++ ++++
+++ | ++
++ | ++
++ | |
++ |
++
|
-
sがあるのか、古典的な迷路+
の一番下の列にs がないのかはわかりません。
smallest number of characters
バイトではなく、本当に意味しますか?
+
1行目の真ん中にある!
必要があります2)つららのはに置き換えられるべきだと思います-
。これらをもう一度確認してください。
whitespace
、あなたはちょうどスペースを意味するのですか?タブをサポートする必要はありませんし、おそらく改行も変換したくないでしょう
---
か?