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 : Sélectionner tout - Visualiser dans une fenêtre à part
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++;
              }
        }