ジュリアン王はジャングルを抜け出す必要がありますが、彼は怠け者です。彼は、コンピューターが彼のためにジャングルを通るルートを計算できることを望んでいます。
STDINを使用して、コンピューターがクラックするためのジャングルのマップを取得します。次の形式に従います。
01001E
010110
000P00
1100J1
S00111
ジャングルマップの仕組みは次のとおりです。
0 ジュリアンが一緒に移動できる根拠です。
1 密林のジャングルです。
P 捕食者がいる地域であり、あなたはどんな犠牲を払っても避ける必要があります。
J比較的厚いジャングルです。ジュリアンの手先は、疲れる前にこれらのいずれかを突破することができます。
Sジュリアンが始まるところです。マップ上の任意の場所に配置できます。
Eジュリアンが行きたい場所です。パスの終わり。また、他のタイルと同様に、マップ上の任意の場所に配置できます。
すべてのキャラクターはマップ上のタイルです。改行は、タイルの新しい行を示します。ご使用の言語のSTDINが改行をサポートしていない場合、改行をスペースで置き換えて新しい行を示す必要があります。
タイル間を移動するには、次の特殊文字を含むSTDOUTを使用して文字列を出力する必要があります。
F -進む
B -後方
L -ジュリアンを左に回転(反時計回りに90度)
R -ジュリアンを右に回転(時計回りに90度)
M-ミニオンはJ、ジュリアンから1タイル先にタイルがあれば、それを破壊します(Mます場合)
可能な出力は次のとおりです。
RFFLFRFMFLFRFLFF
上記のマップを解決します。
ノート:
プログラムが捕食者を襲うソリューションを出力する場合、ゲームオーバーです。
通り抜けられないジャングルにぶつかると、密なジャングルに出会う前の場所に戻り、同じ方向に向かいます。(ジャングルに向かって)
ジュリアンは上向きになり始めます。(^そのように^)
出力は最速の解決策になる必要があり、しない
FFFとFBFBFBFBFBFFF同じです。ただし、可能な限り高速のソリューションを出力すると、-10%のバイトカウントボーナスが得られます。マップが無効な場合、STDOUT 'Invalid map。' (マップが解決できない場合を含む)
マップに異なる長さの行または列を含めることはできません。それが無効になります。
あなたの答えはこのフォーマットにいくらか従うべきです:
#Language name, *n* bytes
code
Explanation (optional)
これはcode-golfであるため、バイト単位の最短コードが優先されます。