void presence_candidat_region(Sudoku s, int c, int val, T_Case *lieux) /* C est le numero d'une region */ { int i, j, k, indice, nb_case=0, cases[CAND_MAX]; /* nb_case = nombre de cases ou val est candidat cases[] = tableau repertoriant le numero de cases en question */ /* Parcours de la region */ for(i=0; i<3; i++) /* Pour chaque ligne */ for(j=0; j<3; j++) /* Pour chaque colonne */ { indice=faible_indice(c)+9*i+j; /* Indice de la case dans la grille */ for(k=1; k<=s->grille[indice].nb_candidats; k++) /* Pour chaque candidat de la case */ { if(s->grille[indice].candidat[k] == val) /* Si val est candidat */ { cases[nb_case]=indice; /* On le rajoute dans la liste lieux */ nb_case++; printf("presence candidat %d\n, indice %d\n", cases[nb_case],indice); } } } lieux->valeur=c; /* Affectation des valeurs a lieux */ lieux->nb_candidats=nb_case; for(i=0; icandidat[i]=cases[i]; }