私は大好きです> <>、> <>は人生です!2Dの言語は素晴らしいです!このチャレンジでは、コードゴルフ中に「魚のような」道路に終わりがあるかどうかを言う必要があります。
定義
魚道は、次のものを含むタイルで構成されています。
v (go down)
> (go right)
^ (go up)
< (go left)
/ (mirror)
\ (mirror)
他のキャラクター(を除く-|+
)は、道路の境界線にある花(または魚の頭)のように、注意散漫と見なされる場合があります。
道路は常に、-|+
シンボルで区切られた長方形のグリッドの左上隅から始まります。道をたどって境界線に辿り着くと、道は終わりになります。さもなければ、無限の道に閉じ込められます。
道路上の道を見つけるにはv>^<
、ミラーとミラーの指示に従ってください。鏡はあなたがどこから来たかに応じて90°反射します。仕組みはv>^<
次のとおりです(ルートの表示に使用):
^ ^
>/< >\<
v v
</> <\>
^ ^
終了する場合、道路は次のようになります。
+--------------------+
|>\/ this way >\/> | this one ends here
| v^ \/ |
| v^ ^.^ |
| \/\ >v |
| /\/ ^< |
+--------------------+
無限ループ:
+--------+
|>>\ This|
|\\ is |
| \\ a |
| \ /trap|
+--------+
仕様
道路は必ずしも指示だけで構成されているわけではありません。スペースまたは文字を使用して完成させることができます。つまり、でキャラクターを横切る場合を除き、同じ方向に移動し続ける必要があります<v^>-|
。
は常にv>^<
左上隅にある<
か^
、この道路の終点を意味します。
パラメータとして文字列をとる関数、または言語で最も近い代替となるSTDIN / whateverを使用したスタンドアロンプログラムを送信できます。
あなたの提出は、それが完了したときにSTDOUTの真偽/偽の値を返すか印刷する必要があります。真実の値は、道路に終わりがあることを意味し、偽りは、それが無限ループであることを意味します。
テストケース
+--------------------+
|>\/ this way >\/> | this one ends here
| v^ \/ |
| v^ ^.^ |
| \/\ >v |
| /\/ ><> ^< |
+--------------------+
True
+--------+
|>>\ This|
|\\ is |
| \\ a |
| \ /trap|
+--------+
False
+--+
|<v|
|^<|
+--+
True
+--+
|>v|
|^<|
+--+
False
+----------+
|v Hello \ |
|\\/\/ / |
| \/\\ \ |
|/ // >\ |
| ^/\>\\/ |
|\ /\/\/ |
+----------+
False
+-----+
|>\/\\|
|//\\/|
|\/\\\|
|//\//|
|\/\/ |
+-----+
True
2 test cases added as suggested by @MartinBüttner
+----+
|v |
|\\ |
|//\ |
|\\v |
| \/ |
+----+
False
+----+
|v |
|\\ |
|//\ |
|\\^ |
| \/ |
+----+
False
Test case inspired by @ETHproductions
+-------------------------+
|><> |
|something smells fishy...|
+-------------------------+
False
標準の抜け穴は禁止されています(いつものように)。
勝者は、バイト単位で最も短いコードを持つものになります。(> <>答えを見るのは驚くべきことです:))