Що робити, якщо у нас є коридор, який складається з двох паралельних дзеркал?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Тепер ми просвічуємо лазер вниз ...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
О, дивись. Він відскочив, до кінця, туди.
Що робити, якщо ми намалюємо два лазери, АЛЕ йде в зворотному напрямку?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
Хм, вони, схоже, не зустрілися там. Це зручно. Що станеться, якщо обидва лазера займають однаковий простір?
| \ / |
| \ / |
| \ / |
| 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|