Что если у нас есть коридор, состоящий из двух параллельных зеркал?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Теперь мы светим лазером ...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
О, посмотри. Это подпрыгнуло, к концу, там.
Что если мы нарисуем два лазера НО, идущих в противоположном направлении?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
Хм, похоже, они там не встречались. Это удобно Что произойдет, если оба лазера займут одно и то же место?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
Я думаю, это было довольно очевидно, а?
Рисование этих диаграмм вручную довольно трудоемко (поверьте мне). Возможно, какой-то код мог бы сделать это для нас?
- Напишите некоторый код для вывода двух параллельных зеркал с двумя пересекающимися лазерами.
- Ввод (все целые числа):
- Ширина коридора
- Длина коридора
- Начальная позиция правого лазера (с нулевым индексом, должна быть меньше ширины)
- Начальная позиция левого лазера (с нулевым индексом, должна быть меньше ширины)
- Процесс
- Если лазер работает правильно, он будет нарисован на одну клетку вправо на следующей линии.
- Если лазер оставлен включенным, он будет нарисован на одну клетку слева на следующей линии.
- Если лазер не может сделать свой шаг в сторону, он изменит свое направление, но не его положение.
- Если оба лазера имеют одинаковый индекс, выведите в верхнем регистре X с этим индексом.
- Выход
- Строка с несколькими строками
- Каждая строка начинается и заканчивается символом канала (|)
- Правый лазер обозначается обратной косой чертой (\)
- Левый лазер обозначается косой чертой (/)
- Пересечение двух лазеров обозначается буквой X в верхнем регистре.
- Любой язык
- Я хотел бы видеть ссылки TIO
- Попытка исправить это в наименьшем количестве байтов
Контрольные примеры
ширина: 6 длина: 10 направо: 1 налево: 4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
ширина: 6 длина: 10 направо: 0 налево: 1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
ширина: 4 длина: 10 направо: 2 направо: 0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
ширина: 20 длина: 5 направо: 5 налево: 15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
ширина: 5 длина: 6 направо: 2 направо: 2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
ширина: 1 длина: 2 направо: 0 направо: 0
|X|
|X|