마칭 제곱 알고리즘 이 모든 셀에 대해 식별 할 수 있는 다음 3x3 블록을 고려하십시오 (0 기반 레이블이있는 ID).
0:
...
...
...
1:
...
...
\..
2:
...
...
../
3:
...
---
...
4:
..\
...
...
5:
/..
...
../
6:
.|.
.|.
.|.
7:
/..
...
...
8:
/..
...
...
9:
.|.
.|.
.|.
10:
..\
...
\..
11:
..\
...
...
12:
...
---
...
13:
...
...
../
14:
...
...
\..
15:
...
...
...
이 도전의 목표는 블록 ID의 2D 매트릭스가 주어지며, 작은 셀을 함께 묶어 전체 윤곽 플롯을 그립니다. 반복되는 사례가 있습니다 (예 : 0과 15는 시각적으로 동일합니다).
입력
프로그램 / 함수는 범위 내에서 정수의 2D 직사각형 행렬을 입력으로 가져와야합니다 [0+a,15+a]
(여기서 a
임의의 정수 이동이 선택됩니다; 블록에 대해 0부터 시작하는 색인 또는 1부터 시작하는 색인을 사용할 수 있습니다). 이것은 원하는 소스 (stdin, function parameter 등)에서 온 것일 수 있습니다.
산출
프로그램 / 함수는 전체 등고선도를 나타내는 단일 문자열을 출력해야합니다. 추가 선행 / 후행 공백이 없어야하지만 단일 후행 줄 바꿈이 허용됩니다. 수직 또는 수평으로 인접한 블록 사이에 간격이 없어야합니다.
"안장"에 매핑되는 블록에 대해서는 특별한 처리를 할 필요가 없습니다. 주어진 ID로 그대로 블록을 그립니다.
원하는 싱크로 출력 할 수 있습니다 (stdout, return value 등).
예
아래의 모든 예는 0 기반 블록 ID를 사용합니다.
case 1:
2 1
4 8
......
......
../\..
..\/..
......
......
case 2:
15 13 12 14 15
13 8 0 4 14
11 1 0 2 7
15 11 3 7 15
...............
......---......
...../...\.....
.../.......\...
...............
../.........\..
..\........./..
...............
...\......./...
.....\.../.....
......---......
...............
case 3:
12 12 12 8 4
0 0 0 0 2
0 0 0 2 7
0 2 3 7 15
........./....\
---------......
...............
...............
...............
............../
............/..
...............
.........../...
........./.....
......---......
...../.........
case 4:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
............
.........---
...\..../...
..\/...|./..
.......|....
...../.|....
/...|...\..\
....|.......
....|.\.....
............
---.........
...../\.....
case 5:
0 0 0 0 6 15 15
0 0 0 0 6 15 15
0 0 0 0 6 15 15
0 0 0 2 7 15 15
0 0 2 5 14 15 15
0 2 5 8 4 12 14
0 4 8 0 0 0 6
0 0 0 0 0 0 4
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
............/........
.....................
.........../.........
........./...........
.....................
......../../\........
....../../....\......
...............---...
...../../.........\..
.....\/............|.
...................|.
...................|.
....................\
.....................
.....................
채점
이것은 코드 골프입니다. 바이트 단위의 가장 짧은 코드가 이깁니다. 표준 허점이 적용됩니다.