81 個の要素 (9x9 グリッドを表すことを意味する) の配列が与えられた場合、どのように各要素を調べて、その周囲の 3 つを取得し、それらに対して操作を実行してから、各行、列、またはサブマトリックスの次の 3 つに進むことができますか。下または数独グリッドを見て、レイアウトを確認します。
define COL(n) ((n) % 9)
define ROW(n) ((n) / 9)
define SUB(n) ((n / 3) % 9)
たとえば、私は
int grid[81];
と
int array_x[9], array_y[9], array_s[9];
合計 9x9 グリッドは次のカテゴリの 9 つに分割できるため、各配列には 9 つの要素があり、各列 (x 軸) の要素を 3 つのグループに分けて実行したいと考えています。
r = ((a = ~a) & (b = ~b)) | ((b | a) & ~c);
// or
r = ((~a & ~b)) | ((~b | ~a) & ~c);
それらに対して、結果の 3 つの数値を取得し、それらに対して実行してから、配列に格納します。
これが不可能に聞こえる場合は、申し訳ありませんが、これを行う別の方法が必要です。間違いなく提案を受け入れます...