マーチングスクエアアルゴリズムがすべてのセル(0ベースのラベル付きID)で識別する次の3x3ブロックを検討します。
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で、任意の整数シフトがあります。これにより、ブロックにゼロベースのインデックス付けまたは1ベースのインデックス付けを使用できます)。これは、任意のソース(stdin、関数パラメーターなど)から取得できます。
出力
プログラム/関数は、完全な等高線図を表す単一の文字列を出力する必要があります。余分な先頭/末尾の空白はないはずですが、単一の末尾の改行が許可されます。垂直方向または水平方向に隣接するブロックを分離しないでください。
「サドル」にマッピングされるブロックに対して特別な処理を行う必要がないことに注意してください。指定されたIDのブロックをそのまま描画します。
出力は、任意のシンク(stdout、戻り値など)になります。
例
以下のすべての例では、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
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
............/........
.....................
.........../.........
........./...........
.....................
......../../\........
....../../....\......
...............---...
...../../.........\..
.....\/............|.
...................|.
...................|.
....................\
.....................
.....................
得点
これはコードゴルフです。バイト単位の最短コードが優先されます。標準の抜け穴が適用されます。