Інформація
Кожне число від 1 до 9 являє собою клітинку в районі Мура , 5 - центральну клітинку. Тому:
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}
Змагання
Ви можете взяти вхід через STDIN, ARGV або аргумент функції та повернути результат або надрукувати його в STDOUT. Вхід - це сітка N x N (топологія тору, тобто якщо x або y <1, то x або y = N, і якщо x або y> N, то x або y = 1), і ваша програма повинна виводити одну інтеграцію цього сітка, замінюючи кожну комірку значенням у комірці сусідства Мура.
Приклад вхідної сітки (2 х 2):
13
79
Вихід:
97
31
Пояснення:
Починаючи з позиції 1,1, ми маємо значення 1, оскільки значення 1 = {- 1, -1} ми повинні отримати 1 + (- 1), 1 + (- 1) = 0,0. А оскільки це торус 0,0, ми обертаємось до N. Отже, ми отримуємо значення комірки у позиції 1,1 (1) зі значенням комірки у позиції 2,2 (9).
Для наступної комірки 1,2 маємо значення 3 (= -1, 1), тому 1 + (- 1), 2 + (1) = 0,3. Обернути навколо 2,1, що є значенням 7.
Наступне значення комірки при 2,1 становить 7 (= 1, -1), тому 2+ (1), 1 + (- 1) = 3,0. Обгортання до 1,2, що є значенням 3.
Наступне значення комірки при 2,2 дорівнює 9 (= 1, 1), тому 2+ (1), 2 + (1) = 3,3. Обгортання до 1,1, що є значенням 1.
Більше прикладів
Сітка вводу (3 х 3):
123
456
789
Очікуваний вихід:
987
654
321
Сітка вводу (5 x 5):
77497
81982
32236
96336
67811
Очікуваний вихід:
28728
37337
11923
73369
77433
Заключні ноти
Якщо у вас виникли запитання, не соромтесь коментувати. Це виклик коду для гольфу, найкоротший виграш коду!