#include "strategie_moyenne.h" void presence_candidat_region(Sudoku s, int c, int val, T_Case *lieux) { /*c est le numéro d'une région*/ int i, j, k, indice, nb_case=0, cases[CAND_MAX]; /* nb_case = nombre de cases où val est candidat cases[] = tableau répertoriant le numéro 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; for(k=0; kgrille[indice].candidat[k] == val) /*si val est candidat*/ { /*on le rajoute dans la liste lieux*/ cases[nb_case]=3*i+j; nb_case++; } } } /*affectation des valeurs à lieux*/ lieux->valeur=c; lieux->nb_candidats=nb_case; for(i=0; icandidat[i]=cases[i]; } int distribution_ligne(Sudoku s, T_Case lieux, int val) { int i, j, k, ligne1, ligne2, indice; ligne1=lieux.candidat[0]/3; for(i=0; igrille[i].candidat, s->grille[i].nb_candidats, val); } void supprime_candidat_bloques_colonne(Sudoku s, int region, int colonne, int val) { int i, indice_depart; indice_depart=colonne; for(i=indice_depart; igrille[i].candidat, s->grille[i].nb_candidats, val); } int enleve_candidats_bloques_region(Sudoku s) { int i, j, val, region, ligne, colonne, cpt=0; T_Case lieux; for(region=0; region