class Regles {
  /** Ensemble de règles, chaque règle est un tableau d'entiers
    * au format CNESOC ou le premier C correspond à la valeur
    * actuelle de la cellule, N à la case au nord, etc. et le
    * dernier C à la valeur résultat de la cellule si la règle
    * s'applique. */
  int[][] regles;
  
  Regles(String fichier) {
    String[] lines = loadStrings(fichier);
    regles = new int[lines.length*4][6];
    
    for(int i=0; i<lines.length; i++) {
      for(int j=0; j<6; j++) {
        regles[i*4][j] = lines[i].charAt(j)-48;
      }
      rotations(i*4, 1);
      rotations(i*4, 2);
      rotations(i*4, 3);
    }
  }
  
  void rotations(int src, int off) {
    regles[src+off][0] = regles[src][0];
    regles[src+off][5] = regles[src][5];
    for(int i=0; i<4; i++) {
      regles[src+off][i+1] = regles[src][1+((i+off)%4)];
    }
  }
  
  int correspond(int c, int h, int d, int b, int g) {
	// TODO
  }
}