1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#include <stdio.h>
#include <stdlib.h>
#define VIDE -1
/* le type des grilles de Sudoku */
typedef int Grille[9][9];
void initialiseGrille(Grille G);
int lireGrille(Grille G);
void afficheGrille(Grille G);
void supprime(char *texte, char x);
Grille G;
char tab[172];
int main()
{
lireGrille(G);
afficheGrille(G);
return 0;
}
void initialiseGrille(Grille G)
{
int ligne, colonne;
for(ligne=0; ligne<9; ligne++)
{
for(colonne=0; colonne<9; colonne++)
G[ligne][colonne]=VIDE;
}
}
int lireGrille(Grille G)
{
int ligne,colonne,i=0,j=0;
FILE* fichier=NULL;
fichier = fopen ("grille1.txt", "r" );
if(fichier==NULL)
{
printf("Impossible d'ouvrir le fichier grille1.txt\n");
return 0;
}
while (!feof(fichier))
{
tab[i]=fgetc(fichier);
i++;
}
supprime(tab, '|');
supprime(tab, '|');
//Prend le tableau tab et le met en forme pour que les valeur entre entre dans le tableau G
for(ligne=0; ligne<9; ligne++)
{
for(colonne=0; colonne<9; colonne++)
{
G[ligne][colonne]=tab[j];
j++;
}
j+8;
}
fclose(fichier);
return 1;
}
//Affiche les grille de sudoku en matraice 3*3
void afficheGrille(Grille G)
{
static char r[]="+---+---+---+";
int ligne, colonne;
for(ligne=0; ligne<9; ligne++)
{
if(ligne==0 || ligne ==3 || ligne==6)
printf("%s\n",r);
printf("|");
for(colonne=0; colonne<9; colonne++)
{
if(colonne==3 || colonne==6) printf("|");
//if(G[ligne][colonne]==-1) printf(" ");
printf("%c", G[ligne][colonne]);
if(colonne==8) printf("|\n");
}
}
printf("%s\n",r);
}
void supprime(char *texte, char x) // supprime x dans la chaine texte
{
int p ,i;
for(i=0;texte[i] != '\0';i++)
{
if (texte[i] == x) // on a trouve
{
for(p=i; texte[p]!=0; p++)
texte[p]=texte[p+1];
}
}
} |
Partager