때로는 낙서 할 때 사각형을 그리고 모서리 중 하나에서 대각선으로 시작한 다음 사각형의 한면을 칠 때마다 "반사"하여 선을 추적합니다. 직사각형의 다른 모서리에 닿을 때 까지이 작업을 계속합니다 (내 직사각형의 종횡비가 비이성적이지 않기를 바랍니다). 이것은 레이저의 경로를 상자로 추적하는 것과 같습니다. ASCII 아트를 사용하여 결과를 생성해야합니다.
예를 들어 width 5
및 height 상자를 고려하십시오 3
. 우리는 항상 왼쪽 상단에서 시작합니다. #
마크 상자의 경계. 너비와 높이는 내부 치수를 나타냅니다.
####### ####### ####### ####### ####### ####### #######
#\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\#
# \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/#
# \ # # \/ # # \/ # # /\/ # #\/\/ # #\/\/ # #\/\/\#
####### ####### ####### ####### ####### ####### #######
도전
상자의 (양의) 너비와 높이가 주어지면 레이저 추적의 최종 결과를 생성해야합니다. STDIN (또는 가장 가까운 대안), 명령 줄 인수, 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안)을 통해 또는 함수 반환 값 또는 인수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
편리한 목록, 문자열 또는 숫자 형식을 입력에 사용할 수 있습니다. 출력은 단일 문자열이어야합니다 (STDOUT으로 인쇄하지 않는 한 점진적으로 진행할 수 있음). 이것은 또한 높이를 먼저, 너비를 두 번째로 취할 수 있음을 의미합니다-답에 정확한 입력 형식을 지정하십시오.
출력 라인에 선행 또는 후행 공백이 없어야합니다. 선택적으로 단일 후행 줄 바꿈을 출력 할 수 있습니다.
당신은 공간을 사용합니다 /
, \
그리고 #
정확히 같은 표시된 테스트 케이스를 재현.
테스트 사례
2 2
####
#\ #
# \#
####
3 2
#####
#\/\#
#/\/#
#####
6 3
########
#\ /#
# \ / #
# \/ #
########
7 1
#########
#\/\/\/\#
#########
1 3
###
#\#
#/#
#\#
###
7 5
#########
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#########
22 6
########################
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
# /\ /\ /\ /\ /\ /#
#/ \/ \/ \/ \/ \/ #
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
########################
X
교차로에 필요한 여러 출발점을 고려하고있었습니다 . 아마 다음 번에. ;)