begin process at 2012 02 11 11:34:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Sudoku en langage C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sudoku en langage C

dimanche 9 avril 2006 à 18:34:27 | Sudoku en langage C

Bavimo

Si cela peut aider, vous trouverez un source pour résoudre les grilles de sudoku à : http://www.i2i.fr/ Langage C. Méthode récursive. Mis à part la saisie, 25 lignes d'instructions suffisent. A+
jeudi 13 avril 2006 à 21:56:42 | Re : Sudoku en langage C

baby3378

interessent :-}
vendredi 14 avril 2006 à 03:26:58 | Re : Sudoku en langage C

Bavimo

Merci
lundi 14 avril 2008 à 23:28:02 | Re : Sudoku en langage C

F0ul06

Quelqu'un a cette source ?
dimanche 7 décembre 2008 à 21:18:41 | Re : Sudoku en langage C

stim2007

///////////////////////////////////////////////// // Guessous Hicham // // EMSI - Rabat // ////////////////////////////////////////////// #include #include #include #include #include // pour abs //********************************************** void affichage( int m[9][9] ) { int i,j ; clrscr();clrscr(); gotoxy(5,5);printf("\n"); for(i=0;i<9;i++) { if(i%3==0&&i!=0) {int k ; textcolor(5); printf(" "); for(k=0;k<69;k++)cprintf("%c",223);// lingne textcolor(7); printf("\n"); } for(j=0;j<9;j++) { if(j%3==0&&j!=0) {textcolor(5);cprintf(" %c",219); textcolor(7); } if(m[i][j]==0) { textcolor(6);cprintf("%7d",m[i][j]);textcolor(7); } else if(m[i][j]<0) { textcolor(3);cprintf("%7d",abs(m[i][j]));textcolor(7);} else printf("%7d",m[i][j]); } printf("\n\n"); } } //************************************************* int ligne (int m[9][9],int y , int a) { int i; for(i=0;i<9;i++) if((abs(m[y][i])) == a ) return 0 ; //Existe deja return 1 ; } //************************************************ int colone (int m[9][9],int x , int a) { int i ; for(i=0;i<9;i++) if(abs(m[i][x]) == a ) return 0 ; //Existe deja return 1 ; } //************************************************ int sousgrille( int m[9][9], int y , int x , int a ) { // y=ligne x=colone int l1 , l2 ; // indice debut & fin de la sous grille (ligne) int c1 , c2 ; // indice debut & fin de la sous grille (colone) //------------------Limites Lignes if( y>= 0 && y<= 2 ) { l1=0 ; l2=3; } if( y>= 3 && y<= 5 ) { l1=3 ; l2=6; } if( y>= 6 && y<= 8 ) { l1=6 ; l2=9; } //------------------Limites Colones if( x>= 0 && x<= 2 ) { c1=0 ; c2=3; } if( x>= 3 && x<= 5 ) { c1=3 ; c2=6; } if( x>= 6 && x<= 8 ) { c1=6 ; c2=9; } //----------------- int sauv=c1; for( ; l1 0 ) { (*x)=8; (*y)--; } if((*x)> 0 && (*y)>= 0 ) { (*x)--; } for((*y) ; (*y) >= 0 ;(*y)--) { while((*x)>=0) { if( ((m[*y][(*x)])<0) ) return ; (*x)--; } if((*x)<0 && (*y) > 0 ) (*x)=8; } if((*y)<0 && *x >=0) (*y)=0; if((*y)<0 && (*x)<0) { textcolor(180); gotoxy(30,25); cprintf("Pas de Solutions !"); getch();getch(); _exit(0); } } //************************************************************ void backtrackin(int m[9][9],int *y , int *x ) { int a, inc ; m[*y][*x]=0 ; recule(m,y,x); if (m[*y][*x] > -9 ) // Compris entre -1 et -8 { inc = 1 ; do{ a= m[*y][*x]-inc; inc++; if(colone(m,*x,-a)&&ligne(m,*y,-a)&&sousgrille(m,*y,*x,-a)) { m[*y][*x]=a; return; //----------> return a sudo } }while(a > -9); if( a <= -9) backtrackin(m,y,x); } else if (m[*y][*x] == (-9) ) { backtrackin(m,y,x); } } //************************************************* void sudo(int m[9][9]) { int y ,x ; int a ; for(y=0;y<9;y++) for(x=0;x<9;x++) if(m[y][x]== 0 ) { for(a=1 ; a<=9 ; a++) { if(colone(m,x,a) && ligne(m,y,a) && sousgrille(m,y,x,a) ) { m[y][x] = -a ; break; } } if(a>9) // on a rien pu mettre dans la case ou il ya 0 { backtrackin(m,&y,&x); } } affichage(m); } //************************************************ void remplissage(int m[9][9]) { struct les_x{ int lg ; // lg : Limite gauche int ld ; // ld : limite droite }a[9]; struct les_y{ int lg ; int ld ; }b[9]; int i ; //-----<<< definition des borne >>> //----------------------- les x a[0].lg=48,a[0].ld=55 ; for(i=1;i<9;i++) { if(i%3==0&&i!=0) { a[i].lg=a[i-1].ld+81 ; a[i].ld=a[i].lg+7 ; } else { a[i].lg=a[i-1].ld+49; a[i].ld=a[i].lg+7; } } //---------------------- les y b[0].lg=32,b[0].ld=39 ; for(i=1;i<9;i++) { if(i%3==0&&i!=0) { b[i].lg=b[i-1].ld+17 ; b[i].ld=b[i].lg+7 ; } else { b[i].lg=b[i-1].ld+9; b[i].ld=b[i].lg+7; } } int x, y, clic; clrscr(); _AX=0; geninterrupt(0x33); // initialise le driver de la souris _AX=1; geninterrupt(0x33); // affiche le curseur de la souris _setcursortype(_NOCURSOR); // on retire le "curseur du clavier" affichage(m); do { _AX=3; geninterrupt(0x33); // recherche des infos de la souris clic=_BX; // le clic se trouve dans _BX x=_CX; // l'abscisse dans le registre _CX y=_DX; // la coordonn?e dans _DX // clic gauche if (clic & 1) { int i,j; for(i=0;i<9;i++) for(j=0;j<9;j++) if( x >= a[j].lg && x <= a[j].ld && y >= b[i].lg && y <= b[i].ld) { int temp ; do { affichage(m); gotoxy(10,25) ; printf("===> Valeur pour la case- M[%d][%d] : ",i,j); scanf("%d",&temp); if(temp) if(colone(m,j,temp)&&ligne(m,i,temp)&&sousgrille(m,i,j,temp)) ; else { affichage(m); printf("Impossible de mettre %d !!",temp);temp=-1 ; getch(); } }while(temp<0 || temp>9); m[i][j]=temp ; affichage(m);clrscr();affichage(m); } } } while (!kbhit()); } //************************************************* main() { int m[9][9],i,j; for(i=0;i<9;i++) for(j=0;j<9;j++) m[i][j]=0; // Mise a Zero de la matrice remplissage(m); affichage(m); sudo(m); gotoxy(20,25); textcolor(89); cprintf("\a=**= FIN !! ESC pour Terminer =**="); char c ; do { fflush(stdin); c=getch(); }while(c!=27); }
mercredi 23 février 2011 à 23:22:05 | Re : Sudoku en langage C

loveslife


bsr stim2007,
STP je voudrais b1 de me donner le lien exacte de ce programme de Guessous Hicham.
j'attend ta rép.
mrc d'avance.




Cette discussion est classée dans : sudoku, langage


Répondre à ce message

Sujets en rapport avec ce message

Sudoku en langage C [ par Bavimo ] Bonjour. Il y a quelques semaine j'avais signalé le site http://www.i2i.fr dans lequel je mettais à disposition un source en C qui résoud les grilles petite application en langage C (pas c++) [ par rami1924 ] Bonjour tout le monde , je cherche une petite application avec le langage C (pas c++) , qui tourne avec TURBO C ou bien dev .... qui fait la gestion d application avec le langage C (pas C++) [ par rami1924 ] Bonjour tout le monde , je cherche une petite application avec le langage C (pas c++) , qui tourne avec TURBO C ou bien dev .... qui fait la gestion d Projet d'été sur SUDOKU!! Aidez-nous s'il vous plait... [ par Naruttibayo ] Au préalable, nous tenons à remercier tous ceux qui contribuerons à notre projet...On nous demande d'écrire un programme C qui permet de Générer des G sudoku en GTK [ par myossi ] Bonjour,J'ai un projet de sudoku à faire en GTK. J'ai trouvé beaucoup de code de sudoku en C. Cependant, il est difficile, même si le GTK c'est du C, avec quel langage ? [ par blinix123 ] Bonjour à tous,Voila je dois faire le petit programme suivant:une fenetre diviser en 2 avec a droite une image et a gauche une colonne qui contient de Serveur web [ par dralou ] Bonsoir tout le monde !J'aimerais savoir s'il existe un faq qui permettrait de savoir comment créer son propre serveur web en langage de programmation lib pour fichier excel en langage C [ par polik78 ] Bonjour,Je recherche un moyen pour écrire, lire et voir un fichier excel en langage C.Existe-t-il une bibliothèque (library) ?Comment puis-je faire ? le langage de requetes XQL [ par mohammed amine ] salut,je cherche des cours sur le langages de requetes XQL pour XML,malheuresement j'ai pas trouvées qlq chose de puissant.pouvez vous m'aider SVP. ME Probleme avec backtracking [ par sda2 ] Bonsoir à tous, Je vous expose vite mon probleme, je souhaite realiser un sudoku (9x9), cependant il ne resoud que les sudokus facile, moyen et lui re


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,586 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales