• # Utilise un tableau de conversion d'indice ?

    Posté par (site web personnel) . En réponse au message Algorithme : permutation. Évalué à 4. Dernière modification le 26 juin 2014 à 00:05.

    Ton code marche pour :

     #define HAUT = 0;
     #define DROITE = 1;
     #define BAS = 2;
     #define GAUCHE = 3;
    

    Sauf que pas de bol, les valeurs sont :

     #define HAUT = 0;
     #define BAS = 1;
     #define GAUCHE = 2;
     #define DROITE = 3;
    

    Bon ben suffit de convertir en utilisant des tableaux :

     int conv[] = {0, 2, 3, 1};
     int convinv[] = {0, 3, 1, 2};
    

    Puis :

     int getNewIndice(int angle, int indice) {
     indice = conv[indice];
     int res = indice;
     switch (angle) {
     case 90: res = (indice + 1) % 4; break;
     case 180: res = (indice + 2) % 4; break;
     case 270: res = (indice + 3) % 4; break;
     }
     return convinv[res];
     }
    

    Je n'ai pas testé, il est tard, mais tu vois l'idée...