Étant donné un tableau de 81 éléments (censé représenter une grille 9x9) comment puis-je parcourir chaque élément, en prenant les trois autour de lui puis effectuer une opération sur ceux-ci, puis continuer avec les trois suivants de chaque ligne, colonne ou sous-matrice. Regardez ci-dessous ou une grille de sudoku pour voir la disposition.
define COL(n) ((n) % 9)
define ROW(n) ((n) / 9)
define SUB(n) ((n / 3) % 9)
Par exemple, j'ai
int grid[81];
et
int array_x[9], array_y[9], array_s[9];
Puisque la grille totale 9x9 peut être divisée en 9 des catégories suivantes, il y a neuf éléments dans chaque tableau, et j'espère prendre les éléments de chaque colonne (l'axe x) par groupes de trois, effectuer
r = ((a = ~a) & (b = ~b)) | ((b | a) & ~c);
// ou
r = ((~a & ~b)) | ((~b | ~a) & ~c);
sur eux, prendre les trois nombres résultants, et les traiter, puis les stocker dans le tableau.
Si cela semble impossible, désolé, je voudrais une autre façon de faire cela. Je suis certainement ouvert aux suggestions...