情報
1から9までの数字はそれぞれMoore's Neighborhoodのセルを表し、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)であり、プログラムはその1つの反復を出力する必要があります各セルをムーアのNeighborhoodセルの値で置き換えることによりグリッド。
入力グリッドの例(2 x 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になります。値7である2,1に折り返します。
2,1の次のセル値は7(= 1、-1)なので、2 +(1)、1 +(-1)= 3,0です。値3である1,2に折り返します。
2,2の次のセル値は9(= 1、1)なので、2 +(1)、2 +(1)= 3,3です。値1である1,1に折り返します。
その他の例
入力グリッド(3 x 3):
123
456
789
期待される出力:
987
654
321
入力グリッド(5 x 5):
77497
81982
32236
96336
67811
期待される出力:
28728
37337
11923
73369
77433
最終メモ
何か質問があれば、遠慮なくコメントしてください。これはコードゴルフチャレンジであり、最短のコードが勝ちます!