Informacje
Każda z liczb od 1 do 9 oznacza komórkę w sąsiedztwie Moore'a , przy czym 5 to komórka centralna. Więc:
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}
Wyzwanie
Możesz pobrać dane wejściowe za pomocą argumentu STDIN, ARGV lub funkcji i albo zwrócić wynik, albo wydrukować go do STDOUT. Dane wejściowe to siatka N x N (topologia torusa, co oznacza, że jeśli x lub y wynosi <1, to x lub y = N, a jeśli x lub y> N to x lub y = 1), a twój program musi wypisać jedną interakcję tego siatki, zastępując każdą komórkę wartością w komórce Sąsiedztwa Moore'a.
Przykład Siatka wejściowa (2 x 2):
13
79
Wynik:
97
31
Wyjaśnienie:
Począwszy od pozycji 1,1 mamy wartość 1, ponieważ wartość 1 = {- 1, -1} musimy pobrać 1 + (- 1), 1 + (- 1) = 0,0. A ponieważ jest to torus 0,0, zawijamy do N. Więc pobieramy wartość komórki na pozycji 1,1 (1) z wartością komórki na pozycji 2,2 (9).
Dla następnej komórki 1,2 mamy wartość 3 (= -1, 1), więc 1 + (- 1), 2 + (1) = 0,3. Obejmuje do 2,1, co jest wartością 7.
Następna wartość komórki przy 2,1 wynosi 7 (= 1, -1), więc 2+ (1), 1 + (- 1) = 3,0. Obejmuje do 1,2, co jest wartością 3.
Kolejna wartość komórki przy 2,2 wynosi 9 (= 1, 1), więc 2+ (1), 2 + (1) = 3,3. Obejmuje do 1,1, co jest wartością 1.
Więcej przykładów
Siatka wejściowa (3 x 3):
123
456
789
Oczekiwany wynik:
987
654
321
Siatka wejściowa (5 x 5):
77497
81982
32236
96336
67811
Oczekiwany wynik:
28728
37337
11923
73369
77433
Uwagi końcowe
Jeśli masz jakieś pytanie, nie wahaj się komentować. To wyzwanie dla golfa kodowego, wygrywa najkrótszy kod!
Odpowiedzi:
APL (33)
Do tego stworzono APL . Jest to funkcja, która przyjmuje siatkę wejściową jako macierz N-na-N i zwraca siatkę wyjściową jako macierz N-na-N.
Test:
źródło
Python, 174
Python nie został stworzony do tego ... APL był!
źródło
Python, 105
Pobiera i zwraca listę list:
Pobiera i zwraca ciąg znaków (148 znaków):
źródło
MATLAB - 121 bajtów
MATLAB był nieco mniej stworzony do tego niż APL, ale nieco bardziej stworzony do tego niż Python. ;)
Wyjście testowe
źródło