Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int R1_sudoku(T_sudoku* ps){ /* Applique R1
- T_coordonnees cible, tempCoordsDebutRegion;
- int cibleLigne, cibleColonne, indiceValeur, tempIndice, tempIndiceRegion, tempIndiceDebutRegion, cibleValeur;
- int presenceAffectation = 0;
- for (int i = 0; i < 81; i++){
- int affectation = R1_case(&((*ps).grille[i]));
- if (affectation == 1){
- presenceAffectation = 1; // le return de la fonction pour sortir
- cible = obtenirCoords(i);
- cibleLigne = cible.ligne;
- cibleColonne = cible.colonne;
- cibleValeur = (*ps).grille[i].val;
- // changement colonne
- for (int z = 0; z < 9; z++){
- T_coordonnees temp;
- temp.ligne = z;
- temp.colonne = cibleColonne;
- tempIndice = obtenirIndice(temp);
- indiceValeur = rechercherValeur(cibleValeur, (*ps).grille[tempIndice]);
- supprimerValeur(indiceValeur, &((*ps).grille[tempIndice]));
- }
- // changement ligne
- for (int x = 0; x < 9; x++){
- T_coordonnees temp;
- temp.ligne = cibleLigne;
- temp.colonne = x;
- tempIndice = obtenirIndice(temp);
- indiceValeur = rechercherValeur(cibleValeur, (*ps).grille[tempIndice]);
- supprimerValeur(indiceValeur, &((*ps).grille[tempIndice]));
- }
- // changement region
- tempIndiceRegion = indiceRegion(cible);
- tempCoordsDebutRegion = debutRegion(tempIndiceRegion);
- tempIndiceDebutRegion = obtenirIndice(tempCoordsDebutRegion);
- for (int aa = 0; aa < 3; aa++){
- for (int bb = 0; bb < 3; bb++){
- indiceValeur = rechercherValeur(cibleValeur, (*ps).grille[tempIndiceDebutRegion]);
- supprimerValeur(indiceValeur, &((*ps).grille[tempIndiceDebutRegion]));
- tempIndiceDebutRegion++;
- }
- tempIndiceDebutRegion -= 3;
- tempCoordsDebutRegion.ligne++;
- }
- }
- }
- return presenceAffectation;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement