Kocham> <>,> <> to życie! Języki 2D są niesamowite! W tym wyzwaniu będziesz musiał powiedzieć, czy „podejrzana” droga ma koniec, podczas gry w golfa.
Definicja
Rybia droga zbudowana jest z płytek, w tym następujących:
v (go down)
> (go right)
^ (go up)
< (go left)
/ (mirror)
\ (mirror)
Każda inna postać (z wyjątkiem -|+
) może być uważana za rozrywkę, na przykład niektóre kwiaty (lub głowy ryb) na granicy drogi.
Droga zawsze zaczyna się w lewym górnym rogu prostokątnej siatki oddzielonej -|+
symbolami. Droga kończy się, jeśli podążając nią, znajdziesz się na granicy, w przeciwnym razie utkniesz w nieskończonej ścieżce.
Znalezienie drogi na drodze odbywa się zgodnie z instrukcjami podanymi przez v>^<
i lusterka. Lustro odbije się o 90 ° w zależności od tego, skąd pochodzisz. Oto jak to działa (używając v>^<
do pokazania wskazówek):
^ ^
>/< >\<
v v
</> <\>
^ ^
Droga może wyglądać tak, jeśli kończy się:
+--------------------+
|>\/ this way >\/> | this one ends here
| v^ \/ |
| v^ ^.^ |
| \/\ >v |
| /\/ ^< |
+--------------------+
Nieskończona pętla:
+--------+
|>>\ This|
|\\ is |
| \\ a |
| \ /trap|
+--------+
Specyfika
Droga niekoniecznie składa się tylko z instrukcji. Do uzupełnienia można użyć spacji lub liter. Oznacza to, że musisz kontynuować ruch w tym samym kierunku, chyba że przejdziesz przez postać <v^>-|
.
Zawsze będzie jeden v>^<
w lewym górnym rogu, <
lub ^
sugeruje, że ta droga się kończy.
Możesz przesłać funkcję przyjmującą ciąg jako parametr lub samodzielny program, używając STDIN / cokolwiek, co jest najbliższą alternatywą w twoim języku.
Twoje zgłoszenie musi zostać zwrócone lub wydrukowane na wartościach true / falsy STDOUT po zakończeniu. Prawdziwe wartości oznaczają, że droga ma koniec, podczas gdy fałsz oznacza, że jest to nieskończona pętla.
Przypadki testowe
+--------------------+
|>\/ 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
Standardowe luki są zabronione (jak zawsze).
Zwycięzcą zostanie ten z najkrótszym kodem w bajtach. (byłoby wspaniale zobaczyć odpowiedź> <> :))