Inverses les lignes impaires d'un tableau de points
Bonsoir, j'ai un soucis assez urgent: j'ai un objet qui est un tableau de point et je fais en quelque sorte un parcours en zig-zag d'une matrice. Par parcours en zig-zag, je veux dire que j'inverse les lignes impaires de la manière suivante :
Si j'ai la matrice suivante :
(3,3,3
M = (5,5,5
(6,7,8)
Mon tableau de points doit valoir :
[(0,0),(0,1),(0,2),(1,2),(1,1),(1,0),(2,0),(2,1),(2,2)];
Les valeurs dans la matrice ne m’intéressent pas du tout, uniquement leurs positions géometrique :
J'ai codé quelque chose, qui ne marche pas tout le temps. Donc si quelqu'un peut corriger ma version pour en donner une meilleure , ça serait cool :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public void parcoursZigZag(int debH,int finH, int debL, int finL) {
coinImage = new Point[(finH -1) - debH + 1) * (finL - 1) - debL + 1)]; //coinImage est mon objet (tableau de Point)
int position1D = 0;
for(int i = debH; i < finH; i++) {
for(int j = debL; j < finL; j++) {
if(i % 2 == 0 {
coinImage[position1D] = new Point(i,j);
}
else {
coinImage[position1D] = new Point(i,(finL - j) - 1);
}
position1D++;
}
} |