迷路をヘビで満たしてください(動けなくなるまで)。
ヘビ
ヘビは、EASTを指す所定の開始点で開始します。それはすぐに、常に壁やその体の一部を持っていることによって移動LEFTその頭の(「左手の法則壁フォロワーその頭の周りのすべての4つの方向が占有されているので、それが立ち往生なるまで、」)。(注:立ち往生しているヘビは、到達可能なすべてのスペースを埋めることはできませんが、それは目標ではありません!)
チャレンジ
2Dテキストの形式で迷路を入力として受け入れるプログラムまたは関数を作成します。
- 入力は、文字列のリスト、改行を含む単一の文字列、ファイルなど、合理的な形式で入力できます。
- 迷路には、壁( "
#
")、空のスペース( "")、および1つの開始点( "
o
")があります。 選ぶことができます
- 最初と最後の行と列が完全に壁であると仮定します。
- または、すべての入力が暗黙の壁の外層を持つと見なされると仮定します
開始点のすぐ上に壁(または暗黙の壁)があり(NORTH)、ヘビが東または南方向に有効な開始移動を行うことができると仮定できます。
- テキストに他の文字が存在しないと仮定できます(入力に必要な場合は改行を除きます)。
- すべての行が同じ長さであると想定できます。
そして、出力として「塗りつぶされた迷路」を印刷/返し、スタックした瞬間のヘビのスナップショットを返します。
- ヘビの体は、次のセグメントが
>v<^
どこにあるかを指し示す文字で表されます - ヘビの開始点は、開始時の方向(
>
すぐに方向転換o
する必要がない限り" " ")またはキャラクター(一貫性のある必要はありません)のいずれかです。 - ヘビの終点は
o
キャラクターです
得点
通常のゴルフ:最短のコードが勝つ
例
in:
#################################
# o #
# #
# ## ### ## #
# ## ## ## ## #
# ## ## ## ## #
# ## ## ## ## #
# ## ## ## ## #
# ## ### ## #
# ## ##### ## #
# ## ##### ## #
# ## ### ## #
# ## ## #
# #
# #
#################################
out:
#################################
#>>>>>>>>>>>>>>>>>>>v>>>>>>>>>>v#
#^>>>>>>>>>>>>>>>>>v>>>>>>>>>>vv#
#^^ ##>>>>>>v###o>>>>>v## vv#
#^^ ##>^ ##>>>>^## >v## vv#
#^^ ##^ ## ## v## vv#
#^^ ##^ ## ## v## vv#
#^^ ##>^ ## ## >v## vv#
#^^ ##^< ### v<## vv#
#^^ ##^ ##### v## vv#
#^^ ##^ ##### v## vv#
#^^ ##^< ### v<## vv#
#^^ ##^<<<<<<<<<<<<<<<<## vv#
#^^<<<<<<<<<<<<<<<<<<<<<<<<<<<<v#
#^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#
#################################
アニメーション(説明のため):
編集:疑わしいときは、ヘビは1ブロック離れた壁にジャンプするのではなく、角に続いて、既に置かれている壁に「左手を置いておく」必要があることに注意してください。
ジョナサン・アランがそれを育ててくれたことに感謝し、Draco18sは上記のスナップショットを説明してくれました。
その他の例
in:
####################
# o# #
# ###
# #
# ## #
# ###
####################
out:
####################
#>>>>>>>>>>>>>>vv# #
#^>>>>>>>>>>>>vvv###
#^^ v<<<o<<<<v>>v#
#^^<<<<##^<<<<<<v<<#
#^<<<<<<<<<<<<<<<###
####################
in:
####################
# o #####
# #####
# #
# ##
####################
out:
####################
# >>>>v#####
# v#####
# >>>>o#
# ##
####################
in:
################
#o #
# ########## #
# # # #
# # # #
# # # #
# # # # #
# # # #
# # # #
# # # #
# ############ #
# #
################
out:
################
#>>>>>>>>>>>>>v#
#>>v##########v#
#^#>>>>>>>>>v#v#
#^#>>>>>>>>vv#v#
#^#^>>>>>>vvv#v#
#^#^^# vvv#v#
#^#^^o<<<<<vv#v#
#^#^^<<<<<<<v#v#
#^#^<<<<<<<<<#v#
#^############v#
#^<<<<<<<<<<<<<#
################