Problem dans un code sudoko en c

Résolu
sassi1985 Messages postés 2 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 4 avril 2012 - 4 avril 2012 à 18:38
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 4 avril 2012 à 18:47
svp jai un mini projet c sur le code de jeux sodoku je fait le code mais j ai problème de la fichage il affiche des grand entier aléatoire voila mon code je ne sais pas qois le problème sur le dev c++
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
/*******************************************/
// Affichage de la matrix soduko à l'ecran //
/*******************************************/
void affichage_matrice(int Case[9][9])

{int i,j;
printf("JEU SODUKO \n");
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
printf("----");

printf(" \n");
for(j=0;j<9;j++)
{if(Case[i][j]==0)
printf("| ");
else
printf("| %d ",Case[i][j]);
}
printf("|\n");
}
for(j=0;j<9;j++)
printf("----");
printf(" \n");
system("color F1");
} // Fin affichage_matrice


/********************************************/
// Vérificaton de la remplissage de la case //
/********************************************/
int verification_case(int i,int j,int Case[9][9])//
{
if (Case[i-1][j-1]==0)
return 1;
else
{
printf("Choisir une case vide\n");
return 0;
}system("color F1");
} // Fin verification_case


int remlir_case(int Case[9][9])
{
int i,j;
for(i=0;i<9;i++)
{

for(j=0;j<9;j++)
{


if(Case[i][j]==0)
{


return 1;
}
}
}
system("color F1");
return 0;
}

int main()
{
int Case[9][9];
int soduko[9][9];

int n=0;
int i=0,j=0;
int x=5;
int k;
do
{


printf("niveau de jeu : ");
scanf("%d",&n);
}
while(n>3);


FILE* fichier = NULL;
fichier = fopen("matrice3.txt", "r+");
system("color F1");
if (fichier != NULL)
{

for(i=0;i<9;i++)
{ for(j=0;j<9;j++)
{
Case[i][j] = fgetc(fichier)-48;
}

}
}


switch ( n)
{
case 1:x=4; printf(" facile \n\n ");break;
case 2: x=12;printf(" moyen \n\n ");break;
case 3: x=15; printf(" difficile \n\n "); break;

}

for(k=0;k<x;k++)
{


do
{
srand(time(NULL));
i=rand()%9+1;
srand(time(NULL));
j=rand()%9+1;

}
while (Case[i][j]==0);
Case[i][j]=0;
}



affichage_matrice(Case);

for(i=0;i<9;i++)
for(j=0;j<9;j++)
soduko[i][j]=Case[i][j];

do{
do{
do{
printf("Donner un numero de ligne : ");
scanf("%d",&i);
printf("\n");
}while(i>9);

do{
printf("Donner un numero de colonne : ");
scanf("%d",&j);
printf("\n");
}while(j>9);
}while(verification_case(i,j,Case)==0);

int valeur_case;

do{
printf("Donner la valeur de la case : ");
scanf("%d",&valeur_case);
printf("\n");
}while((valeur_case<1)||(valeur_case>9));

soduko[i-1][j-1]=valeur_case;


affichage_matrice(soduko);
}while (remlir_case(soduko)==1);

{
int a;
// Parcourir la colonne courante pour verifier si la valeur saisie existe deja
// (a!=(i-1) : Ce test permet d'eviter de tester la case deja ecrite dans le test

printf(" %d %d\n",i,j);
for(a=0; a<9;a++)
if((Case[a][j-1]==Case[i-1][j-1])&&(a!=(i-1)))
{
printf("la valeur existe deja dans la colonne \n");

}

// Parcourir la ligne courante pour verifier si la valeur saisie existe deja
// (a!=(j-1) : Ce test permet d'eviter de tester la case deja ecrite dans le test

for(a=0; a<9;a++)
if((Case[i-1][a]==Case[i-1][j-1])&&(a!=(j-1)))
{
printf("la valeur existe deja dans la ligne \n ");

}

}

printf("bien jouer");
}
svp mon soutenance apres demain !! merci

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
4 avril 2012 à 18:47
Bonjour.

Si tu ne fais pas l'effort d'indenter ton code et de le mettre dans des balises de code, nous ne ferons pas l'effort de te répondre.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
3
Rejoignez-nous