Facebook
From Small Marmoset, 6 Months ago, written in C.
Embed
Download Paste or View Raw
Hits: 101
  1. SUDOKU gestion_clic(SUDOKU S){
  2.   POINT curseur;
  3.   CASE p, c; // Point repr√©sentant le clic
  4.         int a,i,j,b;
  5.   SUDOKU S2;
  6.  
  7.   curseur=wait_clic();
  8.   p=quelle_case(curseur);
  9.         c=quelle_case_central(curseur);
  10.  
  11.   b=button(curseur);
  12.  
  13.   if (curseur.x < 720 && curseur.x > 80 && curseur.y> 80 && curseur.y < 720){
  14.     ecrire_fichier(S,2);
  15.   }
  16.         if (S.CI[p.x][p.y]==0){ // Pour v√©rifier si c'est une case de travail active ou une case de d√©part.
  17.           a=S.CT[p.x][p.y]; // Simplifier l'expression
  18.                 for (i=0; i<9;++i){
  19.                         for (j=0; j<9;++j){ // Test pour les colonnes et les lignes ainsi que le r√©gions
  20.             if(a==S.CI[p.x][i]||a==S.CT[p.x][i]||a==S.CT[j][p.y]||a==S.CI[j][p.y] || S.CI[c.x][c.y]==a || S.CT[c.x][c.y]==a || S.CI[c.x+1][c.y]==a || S.CT[c.x+1][c.y]==a || S.CI[c.x-1][c.y]==a || S.CT[c.x-1][c.y]==a || S.CI[c.x][c.y-1]==a || S.CT[c.x][c.y-1]==a || S.CI[c.x+1][c.y+1]==a || S.CT[c.x+1][c.y+1]==a || S.CI[c.x-1][c.y+1]==a || S.CT[c.x-1][c.y+1]==a || S.CI[c.x-1][c.y-1]==a || S.CT[c.x-1][c.y-1]==a|| S.CI[c.x+1][c.y-1]==a||     S.CT[c.x+1][c.y-1]==a||S.CT[c.x][c.y+1]==a||S.CI[c.x][c.y+1]==a){
  21.               a++;
  22.           }
  23.         }
  24.         }
  25.     if (a>9){
  26.       a=-1;
  27.     }
  28.                 S.CT[p.x][p.y]=a;
  29.                 effacer_chiffre(p.x,p.y);
  30.                 afficher_chiffre(p.x,p.y,S.CT[p.x][p.y],COUL_VAL_TRAVAIL);
  31.         }
  32.   if (Victoire(S)==True){
  33.     aff_vic();
  34.     wait_clic();
  35.     system("rm -f *.undo");
  36.     exit(0);
  37.   }
  38.   S2=Hub_Bouton(b,S);
  39.   if (b==3){
  40.     S=S2;
  41.   }
  42.         return S;
  43. }