氷の迷路は、ポケモンゴールドとシルバーでデビューして以来、ポケモンゲームの主なお気に入りの1つです。あなたの仕事は、これらのタイプの問題を解決するプログラムを作成することです。
名前が示すように、氷の迷路は主に氷で構成されています。プレイヤーが氷上である方向に移動すると、障害物と衝突するまでその方向に移動し続けます。自由に移動できる土壌もあり、プレイヤーが移動するのを止めます。最後の障害は石です。ストーンはプレイヤーと同じスペースを占有できず、プレイヤーがそこに移動しようとすると、移動する前に停止します。
リストのリストや改行で区切られた文字列など、3種類のフローリング(氷、土、石)ごとに3つの異なる値を含む、値の2次元コンテナを受け取ります。また、迷路内の開始座標と目標座標を示す2つのペア(または他の同等の2つの値コンテナー)を受け取ります。これらはゼロまたは1つのインデックスが付けられます。
実行時にプレイヤーが最後に到達するようにする動きのリスト(N、E、S、Wへの全単射で4つの異なる値)を出力する必要があります。
入力は常に迷路の周りに石の閉じた境界線を持っているので、プレイヤーが迷路を出るのを心配する必要はありません
これはコードゴルフなので、最少バイトが勝ちます
テストケース
ここ.
は氷~
を表し、土壌O
を表し、石を表します。座標には1のインデックスが付けられます。ソリューションの各文字は、その文字で始まる方向を表します(例N
=北)
入力
OOOOO
OO.OO
O...O
OOOOO
Start : 3,3
End : 3,2
出力
N
入力
OOOOOOOOOOOOOOOOO
O........O.....OO
O...O..........OO
O.........O....OO
O.O............OO
OO.......O.....OO
O.............OOO
O......O.......~O
O..O...........~O
O.............OOO
O.......O......OO
O.....O...O....OO
O..............OO
OOOOOOOOOOOOOO~~O
OOOOOOOOOOOOOOOOO
Start : 15,12
End : 16,8
出力
N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N
入力
OOOOOOOOOOOOOOOO
O~~~~~OOOOO~~~~O
O~~O~OOOOOOO~~OO
O...O..........O
O........O.....O
O..............O
OO.............O
O.............OO
O....~....O....O
O..............O
O..............O
OOOOOOOOOOOOOOOO
Start : 2,2
End : 14,3
出力
E,S,S,W,N,E,N
入力
OOOOOOOOOOOOOOOOOOO
O~~~~~~~OOOOOOOOOOO
O~~~~...OOOOOOOOOOO
OO~O~..OOOOOOOOOOOO
O..OO.............O
O..............O..O
O....O............O
O.O............~..O
O........OOOO.....O
O.......OOOOO.....O
O.......O~~~O.....O
O.......~~~~~.....O
O.......~~~~~.....O
O..........O......O
O..O..~...........O
O...............O.O
O.....O...........O
O.................O
OOOOOOOOOOOOOOOOOOO
Start : 2,2
End : 11,11
出力
E,E,E,E,E,S,S,E,N,W,S,E,N,N,N