Info
Angka 1 hingga 9 masing-masing mewakili sel di Lingkungan Moore , dengan 5 sebagai sel pusat. Begitu:
123
456
789
1={-1,-1} 2={-1, 0} 3={-1, 1}
4={ 0,-1} 5={ 0, 0} 6={ 0, 1}
7={ 1,-1} 8={ 1, 0} 9={ 1, 1}
Tantangan
Anda dapat mengambil input melalui STDIN, ARGV atau argumen fungsi dan mengembalikan hasilnya atau mencetaknya ke STDOUT. Input adalah kotak N x N (topologi torus, artinya jika x atau y adalah <1 maka x atau y = N, dan jika x atau y> N maka x atau y = 1), dan program Anda harus menampilkan satu interaksi dari itu kisi dengan mengganti setiap sel dengan nilai di sel Lingkungan Moore.
Contoh Input grid (2 x 2):
13
79
Keluaran:
97
31
Penjelasan:
Mulai dari posisi 1,1 kita memiliki nilai 1, karena nilai 1 = {- 1, -1} kita harus mengambil 1 + (- 1), 1 + (- 1) = 0,0. Dan karena itu adalah torus 0,0 kami membungkus ke N. Jadi kami mengambil nilai sel di posisi 1,1 (1) dengan nilai sel di posisi 2,2 (9).
Untuk sel 1,2 berikutnya kita memiliki nilai 3 (= -1, 1) jadi 1 + (- 1), 2 + (1) = 0,3. Membungkus sekitar 2,1 yang merupakan nilai 7.
Nilai sel berikutnya di 2,1 adalah 7 (= 1, -1) jadi 2+ (1), 1 + (- 1) = 3,0. Membungkus sekitar menjadi 1,2 yang merupakan nilai 3.
Nilai sel berikutnya di 2,2 adalah 9 (= 1, 1) jadi 2+ (1), 2 + (1) = 3,3. Membungkus sekitar ke 1,1 yang merupakan nilai 1.
Lebih banyak contoh
Input Grid (3 x 3):
123
456
789
Output yang Diharapkan:
987
654
321
Input Grid (5 x 5):
77497
81982
32236
96336
67811
Output yang Diharapkan:
28728
37337
11923
73369
77433
Catatan Akhir
Jika Anda memiliki pertanyaan, jangan ragu untuk berkomentar. Ini adalah tantangan kode golf, kode terpendek menang!
Jawaban:
APL (33)
APL dibuat untuk ini. Ini adalah fungsi yang mengambil grid input sebagai matriks N-by-N dan mengembalikan grid output sebagai matriks N-by-N.
Uji:
sumber
Python, 174
Python tidak dibuat untuk ini ... APL dulu!
sumber
Python, 105
Mengambil dan mengembalikan daftar daftar:
Mengambil dan mengembalikan string (148 karakter):
sumber
MATLAB - 121 byte
MATLAB sedikit kurang dibuat untuk ini daripada APL, tetapi sedikit lebih dibuat untuk ini daripada Python. ;)
Output Uji
sumber