我爱> <>,> <>是生命!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提交独立的程序,无论哪种语言,您都可以使用。
完成后,您的提交必须返回或打印在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
始终禁止出现标准漏洞。
优胜者将是字节数最少的代码。(看到一个> <>答案是令人惊讶的:))