有时候,当我涂鸦时,我会画一个矩形,从一个角开始以对角线开始,然后每当我碰到矩形的一侧时通过“反射”一条线来画出一条线。我继续进行此操作,直到碰到矩形的另一个角为止(并希望矩形的长宽比不是不合理的;)。这就像追踪激光照射到盒子中的路径一样。您将使用ASCII艺术产生这种效果。
例如,考虑一个width 5
和height 的盒子3
。我们将始终从左上角开始。该#
标记框的边界。请注意,宽度和高度是指内部尺寸。
####### ####### ####### ####### ####### ####### #######
#\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\#
# \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/#
# \ # # \/ # # \/ # # /\/ # #\/\/ # #\/\/ # #\/\/\#
####### ####### ####### ####### ####### ####### #######
挑战
给定盒子的(正)宽度和高度,您应该得出跟踪激光的最终结果。您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数,函数自变量获取输入,并通过STDOUT(或最接近的替代方案)或函数返回值或参数输出结果。
您可以使用任何方便的列表,字符串或数字格式进行输入。输出必须是单个字符串(除非您将其打印到STDOUT(当然可以逐步进行))。这也意味着您可以先选择高度,然后再选择宽度-只需在答案中指定确切的输入格式即可。
输出的任何行上都不能有前导空格或尾随空格。您可以选择输出一个尾随换行符。
您必须使用space和/
,\
并#
完全按照所示重现测试用例。
测试用例
2 2
####
#\ #
# \#
####
3 2
#####
#\/\#
#/\/#
#####
6 3
########
#\ /#
# \ / #
# \/ #
########
7 1
#########
#\/\/\/\#
#########
1 3
###
#\#
#/#
#\#
###
7 5
#########
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#########
22 6
########################
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
# /\ /\ /\ /\ /\ /#
#/ \/ \/ \/ \/ \/ #
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
########################
X
这对于过境是必要的。下次吧。;)