Sudoko en C

zouhair-7 Messages postés 7 Statut Membre -  
zouhair-7 Messages postés 7 Statut Membre -
Bonjour,SVP je veux un code source qui resolu un soduko en langage C ,SVP
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Hello
    Je suppose que c'est pour un travail d'école non ?
    0
    1. zouhair-7 Messages postés 7 Statut Membre
       
      wé c un compt rendu mais le prob c ke jai pas d temps pr resoudre ,il m'ont dis ke yen un ds ce forum mais jarrive pas à le trouvé si tu peu maider à cherché ici ca me ferai enormement plaisir
      0
      1. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403 > zouhair-7 Messages postés 7 Statut Membre
         
        Euh... ouais mais non.

        Fais ton devoir petit homme!
        0
  2. zouhair-7 Messages postés 7 Statut Membre
     
    wééé j'essaie mais il est tré long
    0
    1. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
       
      Bin montre déjà ce que tu as. Comme ça je pourrai t'aider.
      Mais j'vais pas me taper tout le boulot. J'veux bien corriger c'est tout.
      0
  3. zouhair-7 Messages postés 7 Statut Membre
     
    voila c ke rreussi a faire mais jai des ereures

    #include<stdio.h>
    #include<conio.h>

    void tab()
    {
    int i;
    char c;
    clrscr();
    for(i=10;i<45;i++)
    {
    gotoxy(25,i);
    cprintf("%c",186);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,9);
    cprintf("%c",61);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(69,i);
    cprintf("%c",186);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,45);
    cprintf("%c",61);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(30,i);
    cprintf("%c",179);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(35,i);
    cprintf("%c",179);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(40,i);
    cprintf("%c",186);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(45,i);
    cprintf("%c",179);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(50,i);
    cprintf("%c",179);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(55,i);
    cprintf("%c",186);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(60,i);
    cprintf("%c",179);
    }
    for(i=10;i<45;i++)
    {
    gotoxy(65,i);
    cprintf("%c",179);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,13);
    cprintf("%c",196);
    }

    for(i=26;i<69;i++)
    {
    gotoxy(i,17);
    cprintf("%c",196);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,21);
    cprintf("%c",205);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,25);
    cprintf("%c",196);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,29);
    cprintf("%c",196);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,33);
    cprintf("%c",205);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,37);
    cprintf("%c",196);
    }
    for(i=26;i<69;i++)
    {
    gotoxy(i,41);
    cprintf("%c",196);
    }}

    /*****************************************cur****************************/

    void cur(int t[9][9])
    {int k=0,m=0,i=28,j=11,c;
    for(k=0;k<9;k++)
    for(m=0;m<9;m++)
    t[k][m]='0';
    k=0;m=0;

    do{
    gotoxy(i,j);
    fflush(stdin);
    c=getch();
    if(c==80)
    {if(j>42)
    {j=7; m=0;}
    j+=4;m++;
    gotoxy(i,j);}
    if(c==72)
    {if(j<=11)
    {j=47;m=8;}
    j-=4; m--;

    gotoxy(i,j);}
    if(c==77)
    {if(i==68)
    {i-=45;k=0;}
    i+=5; k++;
    gotoxy(i,j);}
    if(c==75)
    {if(i==28)
    {i+=45;k=8;}
    i-=5; k--;
    gotoxy(i,j);}
    if(c==49 || c==50 || c==51 || c==52 || c==53 || c==54 || c==55 || c==56 || c==57)
    {
    t[m][k]=c;
    cprintf("%c",c);
    }

    }while(c!=13);

    }

    void main()
    {
    int i,j;
    int t[9][9];

    clrscr();
    tab();
    cur(t);
    for(i=0;i<9;i++)
    for(j=0;j<9;j++)
    printf("t[%d][%d]=%c ",i,j,t[i][j]);
    getch();

    }

    ////////////////////////////////*sodoko*////////////////////////////////////

    void sodoko(int t[9][9],int i,int j,int f[],int r)
    {
    int w,v=0,a,y[9][9],q,s,e=1,b;
    if(i!=8 && j!=8)
    { if(t[i][j]==0)
    { a=trait(t,i,j,f,r,v);
    if(a==1)
    { if(j==8)
    { int(f);
    return sodoko(t,i+1,j=0,f[],r);
    }

    return sodoko(t,i,j+1,f,r+1);
    }
    b=return back(t,i,j,f,r,e,v);
    if(b==1)
    return sodoko(t,i,j,f,r);
    printf("pas de solution");

    }
    w=t[i][j];
    posi(y,q,s,i,j,w);
    return sodoko(t,i,j+1,f,r);
    }
    printf("");

    }
    /*******************************traitement******************************/

    int trait(int t[9][9],int i,int j,int f[],int r,int v)
    { int a,b,c,h;

    while((r+v)<=9)
    { h=f[r+v];
    a=sod1(t,i,j,h);
    b=sod2(t,i,j,h);
    c=sod3(t,i,j,h);

    if((a+b+c)==3)
    { t[i][j]=f[r+v];
    if(v=!0)
    { prmut+(f,r,v);
    r++;return 1;break;
    }
    }
    else
    return trait(t,i,j,f,r,v+1)

    }

    return 0;
    }
    /********************************back_triking****************************************/

    int back(int t[][],int i,int j,int f,int r,int e,int v)
    { int a,h,d,x,l;
    if(i!=0 && j!=0)
    {
    while(j-e<0)
    { a=rech_possi(t,i,j-e);
    if(a)
    {
    h=f[r]; j-=e;
    a=sod1(t,i,j,h);
    b=sod2(t,i,j,h);
    c=sod3(t,i,j,h);
    if((a+b+c)==3)
    { d=t[i][j];
    t[i][j]=f[r];
    prmut-(f,r,d);
    j+=e;
    e++;
    l=trait(t,i,j,f,r,v);
    if(l==1)
    return 1;

    }
    return back(t,i,j,f,r,e+1);

    }

    return back(t,i,j,f,r,e+1);

    }
    x=j;j=(9-(e-j));
    a=rech_possi(t,i-1,j);
    if(a)
    {
    h=f[r];
    a=sod1(t,i-1,j,h);
    b=sod2(t,i-1,j,h);
    c=sod3(t,i-1,j,h);
    if((a+b+c)==3)
    { d=t[i][j];
    t[i][j]=f[r];
    prmut-(f,r,d);
    j=x;
    e++;
    return 1;

    }
    return 0;
    }
    0
  4. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Ah oki.

    Bon commençons par le début. Déjà je comprend pas pourquoi tu écris 300000 boucles les mêmes.
    Tu as plein de boucles for(i=10;i<45;i++) et plein de boucles for(i=26;i<69;i++) .
    Pourquoi tu n'en fais pas uniquement UNE de chaque et tout mettre dedans ?

    0
    1. zouhair-7 Messages postés 7 Statut Membre
       
      ok apré ????????
      0
      1. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403 > zouhair-7 Messages postés 7 Statut Membre
         
        Bin je sais pas trop
        Dis moi où tu bug. Dans l'interface ou l'algo ?
        J'vais pas regarder TOUT le code pq il est pas super clair et pas commenté :-/
        0
      2. zouhair-7 Messages postés 7 Statut Membre > BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention  
         
        jai un prob au niveau de back triking la fonction ki resolu le sudoko et osi o niveau d la grille elle est tro sombre et male fé :(
        0
      3. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403 > zouhair-7 Messages postés 7 Statut Membre
         
        Bon allez...
        J'pense pas que je vais pouvoir t'aider parce que je suis moi-même au boulot pour l'instant.
        Donc je te file la soluce : http://www.commentcamarche.net/forum/affich 2184752 sudoku resolu en langage c

        Cela dit, si je peux me permettre, je te conseille :
        1) d'utiliser plus les fonctions (c'est la base d'un langage procédural comme le C, et même des langages orientés objets)
        2) de commenter ton code !!!!!!!!!!
        3) d'établir une analyse avant de te lancer dans le code (je pense pas que tu l'ais fais)

        Pour les prochaine fois ;o)

        Tchuss
        0
      4. zouhair-7 Messages postés 7 Statut Membre > BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention  
         
        merci bien et je vais fair ce ke tu mas conseillé ,c gentil d ta part et bon chance pr ton travail
        0