begin process at 2008 09 05 13:36:40
1 237 231 membres
186 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Y a t-il quelqu'un d'intéressé par le SODOKU ? [ Archives / Divers ] (imad_lol)

Y a t-il quelqu'un d'intéressé par le SODOKU ? le 30/12/2005 20:24:25

imad_lol
s il y a quelqu'un interessé par le jeu sudoku je peu reposer ma fonction que je pense qu elle est pas loin de la solution

Re : y a qq interessé par le jeu SUDOKU ??????? le 30/12/2005 20:41:50

vecchio56
(Admin CS)
Il y a déja sur le site plusieurs codes de réolution de sudoku qui marchent très bien

Re : y a qq interessé par le jeu SUDOKU ??????? le 30/12/2005 21:07:48

imad_lol
stp je suis nouveau ici.
peut tu m'aider comment les avoir??
merci d'avance

Re : y a qq interessé par le jeu SUDOKU ??????? le 30/12/2005 21:09:05

vecchio56
(Admin CS)
dans le moteur de recherche, tu tapes sudoku

Re : y a qq interessé par le jeu SUDOKU ??????? le 30/12/2005 21:11:26

imad_lol
oui je lé deja fait mais ces codes marche pas ou je trouve parfois des solutions compliké

Re : Y a t-il quelqu'un d'intéressé par le SODOKU ? le 31/12/2005 00:18:42

Urgo
Membre Club
Y'a pas de solution compliquées, pour une VRAIE grille de sudoku donnée (généralement 81 cases), il n'y qu'UNE SEULE solution possible.
Donc je vois pas où est le bogue.... de quels programmes parles-tu ?

Urgo

Re : Y a t-il quelqu'un d'intéressé par le SODOKU ? le 31/12/2005 00:54:45

imad_lol

je veu dire que les codes que je trouve dans le site j arrive pas a les comprendre..peut etre que cé de ma faute mais pour mon niveau peut etre que cé un peu avancé..bon voila ma fonction recursive mais elle est encore au debut..et je demande si quelqu'un peu m'aider a trouver un code plus simple parceque je doi rendre ce projet ce mardi

int parcours(int i, int j,int init)
{    int k,sortir,a,pl,pc,w,x;


for(k=init;(k<=9);k++)
  {
 sortir=0;
 if(grille[i][j]==0)
 while  (!sortir)
   {for(a=0;a<9 && !sortir;a++)
     if(grille[i][a]==k)   
                                sortir=1;

     if(!sortir)     
                       for(a=0;a<9 && !sortir;a++)
     if(grille[a][j]==k)  
                                          sortir=1;

      if(!sortir)
       {
        pl=(i/3)*3;
        pc=(j/3)*3;
               for(w=pl;w<=pl+2 && !sortir;w++)
        for(x=pc;x<=pc+2 && !sortir;x++)
                 if(grille[w][x]==k) 
                               sortir=1;
       }
      if(!sortir)
    {grille[i][j]=k;
     sortir=1;
     if (j<9)
                             parcours(i,j+1,1);
    else
    if (i<9)
                             parcours (i+1,0,1);
    }

    else
    {
     if (j<9)
                                parcours(i,j+1,1);
     else
     if (i<9)
                                parcours (i+1,0,1);
    }
    }
  }
   return 0;
}


Re : Y a t-il quelqu'un d'intéressé par le SODOKU ? le 31/12/2005 16:42:46

Klephte

Ce n’est pas évident de réfléchir à l'algorithme que tu veux mettre en place en partant de la réponse, mais le problème étant connu je me lance dans une ébauche de réponse.

Voici ce que j'ai compris de ton algo :
tu parcours le tableau à la recherche de zéro, lorsque tu en trouves en un, tu testes successivement tous les chiffres entre 1 et 9 en vérifiant à chaque tentative s’il n'est pas présent dans la ligne, la colonne ou la région sur laquelle tu travailles, si c'est bon ou mauvais (d'ou l'erreur) tu passes à la colonne ou la ligne suivante.
la correction que je te propose:
Modifier ton code pour que si sortir==1 alors retourner à l'appelant que le chiffre proposé n'est pas le bon pour qu’il fasse une tentative avec le chiffre suivant.

La valeur de init passée en paramètre n’a pas d’intérêt (pour preuve cette valeur est de faite une constante) car ce n’est pas l’appelant qui décide de la valeur à mettre dans la case, mais l’appelé !

Tu devrais aussi donner des noms de variables moins sibyllins, k pourrait s’appeler iChiffreTeste (iTestedValue), a : iTemp, sortir :bSortir

Malgré cela ton algorithme ne fonctionnera pas, car tu ne traites pas un retour d'une mauvaise proposition (qui devrait entrainer un autre choix) ou un acquittement du choix (cas qui se présentera lorsque tout le tableau sera remplit).

Ton algorithme devrait être amélioré par un choix judicieux de la case à tester, je te conseille d’écrire une fonction trouvant la cellule ayant le plus de contraintes c'est-à-dire la plus de chiffres sur sa ligne, sa colonne ou sa région, car la contrainte maximale correspond à une ligne ou colonne ou une région n’ayant qu’une case libre et donc qu’une seule valeur possible, le but étant de limiter au maximum la taille de l’arbre que ton algorithme récursif parcourra et de provoquer dès le démarrage une convergence vers le résultat.

 Je crois que cette discution risque de nous tenir en haleine jusque Mardi

Arnaud Grandville
-------------------------------
Maintenant, grâce à Microsoft et à la simplification de ses systèmes via les assistants, tout le monde est capable de créer des systèmes dangereux.

Re : Y a t-il quelqu'un d'intéressé par le SODOKU ? le 31/12/2005 22:56:39

imad_lol
merci. je suis d accord avec toi pour les noms des variables.mais pour ma fonction je pense que je suis deja sur le bon chemin..ce soir chui entrain de l'ameliorer et je te repondrai avant mardi pour dire ou ca a terminer..et peut etre je vais poser la solution de mon prof ..
a tt


Classé sous : quelqu, intéressé, sodoku

Participer à cet échange

Livres en rapport

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS