Иногда, когда я рисую, я рисую прямоугольник, начинаю с диагонали от одного из углов, а затем просто прослеживаю линию, «отражая» ее всякий раз, когда я сталкиваюсь с стороной прямоугольника. Я продолжаю с этим, пока не достигну другого угла прямоугольника (и надеюсь, что соотношение сторон моего прямоугольника не было иррациональным;)). Это все равно что проследить путь лазерного луча в коробку. Вы должны получить результат этого с помощью ASCII art.
В качестве примера рассмотрим поле ширины 5
и высоты 3
. Мы всегда будем начинать в верхнем левом углу. В #
отмечает границу окна. Обратите внимание, что ширина и высота относятся к внутренним размерам.
####### ####### ####### ####### ####### ####### #######
#\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\#
# \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/#
# \ # # \/ # # \/ # # /\/ # #\/\/ # #\/\/ # #\/\/\#
####### ####### ####### ####### ####### ####### #######
Соревнование
Учитывая (положительную) ширину и высоту коробки, вы должны получить окончательный результат трассировки лазера. Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки, аргумент функции и выводить результат через STDOUT (или ближайшую альтернативу) или через возвращаемые функцией значения или аргументы.
Вы можете использовать любой удобный список, строковый или числовой формат для ввода. Вывод должен быть одной строкой (если вы не распечатаете ее в STDOUT, что вы, конечно, можете делать постепенно). Это также означает, что вы можете сначала взять высоту, а затем ширину - просто укажите точный формат ввода в своем ответе.
Ни в одной строке вывода не должно быть ни начальных, ни конечных пробелов. При желании вы можете вывести один завершающий символ новой строки.
Вы должны использовать пространство, /
, \
и #
и воспроизводить тестовые случаи точно так , как показано на рисунке.
Тестовые случаи
2 2
####
#\ #
# \#
####
3 2
#####
#\/\#
#/\/#
#####
6 3
########
#\ /#
# \ / #
# \/ #
########
7 1
#########
#\/\/\/\#
#########
1 3
###
#\#
#/#
#\#
###
7 5
#########
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#########
22 6
########################
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
# /\ /\ /\ /\ /\ /#
#/ \/ \/ \/ \/ \/ #
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
########################
X
были бы необходимы для пересечений. Возможно, в следующий раз. ;)