Цей виклик відбувається в сітці.
+----------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+----------+
Це 10 x 10, але він може бути будь-якої прямокутної форми.
У цій сітці є чотири напрямки. Вгору, вниз, вліво і вправо.
Завдання полягає в тому, щоб намалювати шлях, починаючи з початкового напрямку верхнього регістру. У цьому прикладі піде прямо вгору від U.
+----------+
| |
| |
| |
| |
| |
| |
| |
| |
| U |
+----------+
Шлях піде вгору і буде складатися з символів повного стопу (.), Поки він не потрапить у стіну, коли він закінчиться зірочкою (*).
+----------+
| * |
| . |
| . |
| . |
| . |
| . |
| . |
| . |
| U |
+----------+
Окрім запуску шляху, є також змінні напрямків, представлені початковим напрямком нижнього регістру.
+----------+
| |
| |
| |
| r.....*|
| . |
| . |
| . |
| . |
| U |
+----------+
Також верхній регістр X нам перешкода, яка припинить шлях.
+----------+
| |
| |
| |
| |
| r...*X |
| . |
| . |
| . |
| U |
+----------+
Правила
- Вхід - це рядок, що складається з кадру (що складається з |, - і + символів), що містить символи, що позначають початки шляху, зміни напрямків та перешкоди.
- У вашому коді слід додати символи повної зупинки, щоб слідувати шляху, описаному стартами та змінами напрямків, і зірочкою, коли / якщо шлях зустрічається зі стіною чи перешкодою.
- Може бути кілька запусків шляху.
- Код все одно закінчиться без помилок, якщо шлях описує цикл.
- Якщо шлях відповідає початку шляху, він буде діяти як зміна напрямку.
- Це кодовий гольф, малобайтовий код і відсутні стандартні лазівки, будь ласка.
- Я завжди вважаю за краще посилання на он-лайн перекладача.
Випробування
1: Просте
+----------+
| |
| |
| |
| |
| |
| |
| |
| |
| U |
+----------+
+----------+
| * |
| . |
| . |
| . |
| . |
| . |
| . |
| . |
| U |
+----------+
2: Правий поворот
+----------+
| |
| |
| |
| r |
| |
| |
| |
| |
| U |
+----------+
+----------+
| |
| |
| |
| r.....*|
| . |
| . |
| . |
| . |
| U |
+----------+
3: Перехрестя
+----------+
| |
| |
| |
| r d |
| |
| u l |
| |
| |
| U |
+----------+
+----------+
| * |
| . |
| . |
| . r..d |
| . . . |
| u....l |
| . |
| . |
| U |
+----------+
4: 4 Перехрестя шляхів
+----------+
| D |
| |
| |
|R |
| |
| L|
| |
| |
| U |
+----------+
+----------+
| * D |
| . . |
| . . |
|R........*|
| . . |
|*........L|
| . . |
| . . |
| U * |
+----------+
5: Перша петля
+----------+
| |
| |
| |
| r d |
| |
| u l |
| |
| |
| U |
+----------+
+----------+
| |
| |
| |
| r..d |
| . . |
| u..l |
| . |
| . |
| U |
+----------+
6: Стартер як зміна
+----------+
| |
| |
| |
| L |
| |
| |
| |
| |
| U |
+----------+
+----------+
| |
| |
| |
|*..L |
| . |
| . |
| . |
| . |
| U |
+----------+
7: Пряма петля
+----------+
| |
| |
| |
| |
| r l |
| |
| |
| |
| U |
+----------+
+----------+
| |
| |
| |
| |
| r..l |
| . |
| . |
| . |
| U |
+----------+
8: Тугий вузол
+----------+
| |
| |
| |
| d l |
| r u |
| r u |
| |
| |
| U |
+----------+
+----------+
| * |
| . |
| . |
| d..l |
| .r.u |
| r.u |
| . |
| . |
| U |
+----------+
9: Перешкода
+----------+
| |
| |
| |
| |
| r X |
| |
| |
| |
| U |
+----------+
+----------+
| |
| |
| |
| |
| r...*X |
| . |
| . |
| . |
| U |
+----------+
10: S Shape
+----------+
|r d |
| |
| XXXXXXXX|
| d l |
|ul |
|XXXXXXX |
| |
|R u |
| |
+----------+
+----------+
|r.....d |
|. * |
|. XXXXXXXX|
|.d......l |
|ul . |
|XXXXXXX . |
| . |
|R.......u |
| |
+----------+
11: 4-х напрямний вузол
+----------+
| D |
| |
| r |
|R d |
| |
| u L|
| l |
| |
| U |
+----------+
+----------+
| * D |
| . . |
| r.....*|
|R....d. |
| .... |
| .u....L|
|*.....l |
| . . |
| U * |
+----------+
12: Зайняті перехрестя
+----------+
|rrrrr rrrd|
| rlrl |
|ul rrd |
|ruX X |
|udl ll |
|ull |
|rlr |
|rdr d |
|Uruull |
+----------+
+----------+
|rrrrr.rrrd|
|.rlrl .|
|ul rrd .|
|ruX.X. .|
|udl.ll .|
|ull. .|
|rlr. .|
|rdr..d .|
|Uruull *|
+----------+
13: Починає в край
+----------+
| U |
| |
| |
| |
| |
| |
| |
| |
| |
+----------+
+----------+
| U |
| |
| |
| |
| |
| |
| |
| |
| |
+----------+
14: Перетинання мертвих шляхів
+----------+
| |
| |
| |
| R |
| |
| |
| |
| |
| U|
+----------+
+----------+
| *|
| .|
| .|
| R..*|
| .|
| .|
| .|
| .|
| U|
+----------+