Yürüyen kareler algoritmasının her hücre için tanımlayacağı aşağıdaki 3x3 bloğu düşünün (0 tabanlı etiketli kimlikle):
0:
...
...
...
1:
...
...
\..
2:
...
...
../
3:
...
---
...
4:
..\
...
...
5:
/..
...
../
6:
.|.
.|.
.|.
7:
/..
...
...
8:
/..
...
...
9:
.|.
.|.
.|.
10:
..\
...
\..
11:
..\
...
...
12:
...
---
...
13:
...
...
../
14:
...
...
\..
15:
...
...
...
Bu zorluğun amacına blok kimlikleri 2D matrisi verilir, bu küçük hücreleri bir araya getirerek tam kontur grafiğini çizin. Tekrarlanan bazı durumlar olduğunu unutmayın (ör. 0 ve 15 görsel olarak aynıdır)
Giriş
Programınız / işleviniz, aralıktaki bir 2D dikdörtgen tamsayı matrisini girdi olarak almalıdır [0+a,15+a]
( a
bu, seçtiğiniz rastgele bir tamsayı kaydırmasıdır; bu, bloklar için sıfır tabanlı indeksleme veya 1 tabanlı indeksleme kullanmanızı sağlar). Bu istenen herhangi bir kaynaktan olabilir (stdin, fonksiyon parametresi, vb.).
Çıktı
Programınız / işleviniz, tam kontur grafiğini temsil eden tek bir dize çıkarmalıdır. Fazladan öndeki / sondaki boşluk olmamalıdır, ancak tek bir sondaki yeni satıra izin verilir. Bitişik bloklar arasında dikey veya yatay bir ayrım olmamalıdır.
Bir "eyer" ile eşleşen bloklar için herhangi bir özel işlem yapmanız gerekmediğini unutmayın; verilen kimliğe sahip bloğu olduğu gibi çizmeniz yeterlidir.
Çıkış istenen herhangi bir lavaboya olabilir (stdout, dönüş değeri, vb.)
Örnekler
Aşağıdaki tüm örneklerde 0 tabanlı blok kimlikleri kullanılmıştır.
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
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
.............|.......
............/........
.....................
.........../.........
........./...........
.....................
......../../\........
....../../....\......
...............---...
...../../.........\..
.....\/............|.
...................|.
...................|.
....................\
.....................
.....................
puanlama
Bu kod golf; bayt cinsinden en kısa kod kazanır. Standart boşluklar geçerlidir.