Informazioni
I numeri da 1 a 9 rappresentano ciascuno una cella nel vicinato di Moore , con 5 che è la cella centrale. Così:
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}
La sfida
È possibile accettare input tramite STDIN, ARGV o argomento della funzione e restituire il risultato o stamparlo su STDOUT. L'input è una griglia N x N (topologia del toro, ovvero se x o y è <1 quindi x o y = N e se x o y> N quindi x o y = 1) e il programma deve generare un'interazione di quella griglia sostituendo ogni cella con il valore nella cella di vicinato di Moore.
Esempio di griglia di input (2 x 2):
13
79
Produzione:
97
31
Spiegazione:
A partire dalla posizione 1,1 abbiamo il valore 1, poiché il valore 1 = {- 1, -1} dobbiamo recuperare 1 + (- 1), 1 + (- 1) = 0,0. E poiché è un toro 0,0 ci spostiamo su N. Quindi recuperiamo il valore della cella nella posizione 1,1 (1) con il valore della cella nella posizione 2,2 (9).
Per la cella successiva 1,2 abbiamo valore 3 (= -1, 1) quindi 1 + (- 1), 2 + (1) = 0,3. Si avvolge intorno a 2,1 che è il valore 7.
Il valore della cella successiva a 2,1 è 7 (= 1, -1) quindi 2+ (1), 1 + (- 1) = 3,0. Si avvolge intorno a 1,2 che è il valore 3.
Il valore della cella successiva a 2,2 è 9 (= 1, 1) quindi 2+ (1), 2 + (1) = 3,3. Si avvolge intorno a 1,1 che è il valore 1.
Altri esempi
Griglia di input (3 x 3):
123
456
789
Uscita prevista:
987
654
321
Griglia di input (5 x 5):
77497
81982
32236
96336
67811
Uscita prevista:
28728
37337
11923
73369
77433
Note finali
Se hai qualche domanda, non esitare a commentare. Questa è una sfida del codice golf, vince il codice più corto!