Tôi yêu> <>,> <> là cuộc sống! Langages 2D là tuyệt vời! Trong thử thách này, bạn sẽ phải nói liệu một con đường "tanh" có kết thúc hay không, trong khi chơi golf.
Định nghĩa
Một con đường đầy cá được xây dựng bằng gạch, bao gồm những con đường sau:
v (go down)
> (go right)
^ (go up)
< (go left)
/ (mirror)
\ (mirror)
Bất kỳ nhân vật nào khác (ngoại trừ -|+
) có thể được coi là một vật gây xao lãng, như một số bông hoa (hoặc đầu cá) trên biên giới của con đường.
Một con đường luôn bắt đầu ở góc trên bên trái của lưới hình chữ nhật, được phân định bằng -|+
các ký hiệu. Con đường có một kết thúc nếu, bằng cách đi theo nó, bạn kết thúc ở một biên giới, nếu không, bạn sẽ bị mắc kẹt trong một con đường vô tận.
Tìm đường trên đường được thực hiện bằng cách làm theo chỉ dẫn được đưa ra bởi v>^<
và gương. Một chiếc gương sẽ phản chiếu 90 ° tùy thuộc vào nơi bạn đến. Đây là cách nó hoạt động (sử dụng v>^<
để hiển thị hướng):
^ ^
>/< >\<
v v
</> <\>
^ ^
Một con đường có thể trông như thế này nếu nó kết thúc:
+--------------------+
|>\/ this way >\/> | this one ends here
| v^ \/ |
| v^ ^.^ |
| \/\ >v |
| /\/ ^< |
+--------------------+
Một vòng lặp vô hạn:
+--------+
|>>\ This|
|\\ is |
| \\ a |
| \ /trap|
+--------+
Cụ thể
Một con đường không nhất thiết chỉ bao gồm các hướng dẫn. Không gian hoặc chữ cái có thể được sử dụng để hoàn thành nó. Điều này có nghĩa là bạn phải tiếp tục di chuyển theo cùng một hướng trừ khi bạn vượt qua một nhân vật <v^>-|
.
Sẽ luôn có một v>^<
trong những góc trên bên trái, <
hoặc ^
ngụ ý con đường này kết thúc.
Bạn có thể gửi một hàm lấy một chuỗi làm tham số hoặc một chương trình độc lập bằng STDIN / bất cứ điều gì là sự thay thế gần nhất trong ngôn ngữ của bạn.
Nội dung gửi của bạn phải trả lại hoặc in trên các giá trị trung thực / giả mạo STDOUT khi hoàn thành. Giá trị trung thực có nghĩa là con đường có một kết thúc, trong khi sai lầm có nghĩa là nó là một vòng lặp vô hạn.
Các trường hợp thử nghiệm
+--------------------+
|>\/ 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
Sơ hở tiêu chuẩn bị cấm (như mọi khi).
Người chiến thắng sẽ là người có mã ngắn nhất tính bằng byte. (thật tuyệt vời khi thấy một> <> câu trả lời :))