도전
11x11 정수 배열을 취하고 3D ASCII 블록 빌딩을 구성하는 프로그램을 작성하십시오. 여기서 배열의 각 값은 배열 위치와 일치하는 좌표에서 블록 열의 높이를 나타냅니다. 음수 높이는 "부동"열이며 상단 블록 만 표시됩니다.
예
__________________
___ /\__\__\__\__\__\__\
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\__\ /\/\__\__\__\__\__\__\
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/__/ /\/\/__/__/__/__/__/__/
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/\__\ /\/\/\__\ /\/\/__/
1, 0, 0, 7,-7,-7,-7,-7, 7, 0, 0, \/\/\__\ /\/\/\/__/ /\/\/__/
0, 0, 0, 7,-7,-7,-7,-7, 7, 0, 0, \/\/__/ /\/\/\/\__\ /\/\/__/
0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, \/\__\ /\/\/\/\/__/ /\/\/__/
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, \/__/ \/\/\/\/\__\_ \/\/__/
1, 0, 0, 4, 3, 2, 1, 0, 0, 0, 1, \/\/\/\/__/_\_ \/__/
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ___ \/\/\/__/__/_\_ ___
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /\__\ \/\/__/__/__/_\ /\__\
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, \/\__\ \/__/__/__/__/ \/\__\
\/\__\_________ ______\/\__\
\/\__\__\__\__\ /\__\__\__\__\
\/__/__/__/__/ \/__/__/__/__/
입력
입력은 121 개의 정수 목록으로, stdin에서 읽거나 (분리자를 선택하는 것은 사용자에게 달려 있음) 배열로 전달됩니다 (1D 또는 2D 일 수 있음).
높이는 -11에서 11 사이입니다.
산출
생성 된 건물은 stdout에 작성되거나 화면에 직접 표시되거나 줄 바꿈으로 구분 된 문자열로 반환 될 수 있습니다.
선행 및 후행 공백이 허용됩니다.
건축 규칙
개별 3D 블록의 모양은 다음과 같습니다.
___
/\__\
\/__/
그리고 2x2x2 블록의 큐브는 다음과 같습니다 :
______
/\__\__\
/\/\__\__\
\/\/__/__/
\/__/__/
블록이 겹치면 높은 블록이 낮은 블록보다 우선하고, 앞에있는 블록은 그 뒤로 이동하고 왼쪽의 블록은 오른쪽의 블록보다 우선합니다. 유일한 특별한 경우는 블록의 맨 위 줄이 공백이 아닌 문자를 덮어 쓰지 않아야한다는 것입니다.
열 높이의 해석은 측면에서 2D 표현을 보면 가장 잘 설명 할 수 있습니다.
HEIGHT: 1 2 3 -3 -2 -1
__ __
__ |__| |__| __
__ |__| |__| |__| __
|__| |__| |__| |__|
테스트 사례
몇 가지 추가 입력으로 솔루션을 시험 해보고 싶다면 여기 몇 가지 테스트 사례를 정리했습니다 .
승리
이것은 code-golf 이므로 가장 짧은 제출 (바이트)이 이깁니다.