Saya suka> <>,> <> adalah hidup! Bahasa 2D menakjubkan! Dalam tantangan ini, Anda harus mengatakan apakah jalan "mencurigakan" telah berakhir, sementara bermain golf kode.
Definisi
Jalan mencurigakan dibangun dengan ubin, termasuk yang berikut:
v (go down)
> (go right)
^ (go up)
< (go left)
/ (mirror)
\ (mirror)
Karakter lain (kecuali -|+
) dapat dianggap sebagai pengalih perhatian, seperti beberapa bunga (atau kepala ikan) di perbatasan jalan.
Jalan selalu dimulai di sudut kiri atas kotak persegi panjang, dibatasi oleh -|+
simbol. Jalan memiliki akhir jika, dengan mengikutinya, Anda berakhir di perbatasan, jika tidak, Anda akan terjebak di jalan yang tak terbatas.
Menemukan jalan Anda di jalan dicapai dengan mengikuti petunjuk yang diberikan oleh v>^<
dan cermin. Sebuah cermin akan memantulkan hingga 90 ° tergantung dari mana Anda berasal. Begini cara kerjanya (gunakan v>^<
untuk menunjukkan arah):
^ ^
>/< >\<
v v
</> <\>
^ ^
Jalan mungkin terlihat seperti ini jika berakhir:
+--------------------+
|>\/ this way >\/> | this one ends here
| v^ \/ |
| v^ ^.^ |
| \/\ >v |
| /\/ ^< |
+--------------------+
Loop tak terbatas:
+--------+
|>>\ This|
|\\ is |
| \\ a |
| \ /trap|
+--------+
Spesifik
Jalan tidak hanya terdiri dari instruksi. Spasi atau huruf dapat digunakan untuk melengkapinya. Ini berarti Anda harus terus bergerak ke arah yang sama kecuali jika Anda melewati karakter <v^>-|
.
Akan selalu ada satu v>^<
di sudut kiri atas, <
atau ^
menyiratkan ujung jalan ini.
Anda dapat mengirimkan fungsi yang menggunakan string sebagai parameter, atau program mandiri menggunakan STDIN / apa pun alternatif terdekat dalam bahasa Anda.
Kiriman Anda harus mengembalikan atau mencetak nilai STDOUT yang benar / salah saat selesai. Nilai kebenaran yang berarti jalan memiliki akhir, sedangkan falsy berarti itu adalah loop tak terbatas.
Uji kasus
+--------------------+
|>\/ 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
Celah standar dilarang (seperti biasa).
Pemenang akan menjadi orang dengan kode terpendek dalam byte. (Akan luar biasa melihat>> jawaban> :))