A voir également:
- Probleme 'jeu des 8 reines'
- Clé windows 8 - Guide
- 94 jeu - Télécharger - Puzzle & Réflexion
- Mixcraft 8 - Télécharger - Création musicale
- Jeu zuma - Télécharger - Jeux vidéo
- Internet explorer 8 - Télécharger - Navigateurs
2 réponses
1. /*
2.
3. pour j allant de 1 . 8 effectuer
4.
5. si la case (i,j) est libre et non control,e alors :
6.
7. 1-occuper cette case
8.
9. 2-si (i=8), on a trouv, une solution, sinon on remplit la (i+1)-iSme ligne
10.
11. 3-lib,rer la case (i,j)
12.
13. */
14. #include<stdlib.h>
15.
16. #include<stdio.h>
17.
18. #include<conio.h>
19.
20. #include<math.h>
21.
22. int x[8];
23.
24. int compteur=0;
25.
26. void echiquier()
27.
28. {int i,j;
29.
30. printf("\n\n\n");
31.
32. for(i=0;i<=7;i++)
33.
34. {
35.
36. for(j=0;j<=7;j++)
37.
38. printf("0");
39.
40. printf("\n");
41.
42. }
43.
44. }
45.
46. void poser()
47.
48. {
49.
50. int i;
51.
52. clrscr();
53.
54. compteur++;
55.
56. printf("Voici la solution N=%d\nAppuyer sur une touche pour continuer... Esc pour sortir!!!",compteur);
57.
58. echiquier();
59.
60. for(i=0;i<=7;i++)
61.
62. {
63.
64. gotoxy(i+1,x[i]+5);printf("X");
65.
66. }
67.
68. }
69.
70. int libre(int l ,int c)
71.
72. {
73.
74. int i;
75.
76. for(i=0;i<c;i++)
77.
78. if ((x[i]==l)||(abs(x[i]-l)==abs(i-c))) return 0;
79.
80. return 1;
81.
82. }
83.
84. void solution(int n)
85.
86. {
87.
88. int i;
89.
90. if(n==8)
91.
92. {
93.
94. poser();
95.
96. if(getch()==27) exit(1);
97.
98. }
99.
100. else
101.
102. for(i=0;i<8;i++)
103.
104. if(libre(i,n))
105.
106. {
107.
108. x[n]=i;
109.
110. solution(n+1);
111.
112. }
113.
114. }
115.
116. void main()
117.
118. {
119.
120. solution(0);
121.
122. }
2.
3. pour j allant de 1 . 8 effectuer
4.
5. si la case (i,j) est libre et non control,e alors :
6.
7. 1-occuper cette case
8.
9. 2-si (i=8), on a trouv, une solution, sinon on remplit la (i+1)-iSme ligne
10.
11. 3-lib,rer la case (i,j)
12.
13. */
14. #include<stdlib.h>
15.
16. #include<stdio.h>
17.
18. #include<conio.h>
19.
20. #include<math.h>
21.
22. int x[8];
23.
24. int compteur=0;
25.
26. void echiquier()
27.
28. {int i,j;
29.
30. printf("\n\n\n");
31.
32. for(i=0;i<=7;i++)
33.
34. {
35.
36. for(j=0;j<=7;j++)
37.
38. printf("0");
39.
40. printf("\n");
41.
42. }
43.
44. }
45.
46. void poser()
47.
48. {
49.
50. int i;
51.
52. clrscr();
53.
54. compteur++;
55.
56. printf("Voici la solution N=%d\nAppuyer sur une touche pour continuer... Esc pour sortir!!!",compteur);
57.
58. echiquier();
59.
60. for(i=0;i<=7;i++)
61.
62. {
63.
64. gotoxy(i+1,x[i]+5);printf("X");
65.
66. }
67.
68. }
69.
70. int libre(int l ,int c)
71.
72. {
73.
74. int i;
75.
76. for(i=0;i<c;i++)
77.
78. if ((x[i]==l)||(abs(x[i]-l)==abs(i-c))) return 0;
79.
80. return 1;
81.
82. }
83.
84. void solution(int n)
85.
86. {
87.
88. int i;
89.
90. if(n==8)
91.
92. {
93.
94. poser();
95.
96. if(getch()==27) exit(1);
97.
98. }
99.
100. else
101.
102. for(i=0;i<8;i++)
103.
104. if(libre(i,n))
105.
106. {
107.
108. x[n]=i;
109.
110. solution(n+1);
111.
112. }
113.
114. }
115.
116. void main()
117.
118. {
119.
120. solution(0);
121.
122. }
Utilisateur anonyme
8 avril 2008 à 15:09
8 avril 2008 à 15:09
Tu peux trouver un exemple ici : https://members.loria.fr/HCirstea/
Un exécutable java qui fonctionne pas à pas : http://wwwsi.supelec.fr/fb/enseignement/1A/fisda/HuitReines.html
Un exécutable java qui fonctionne pas à pas : http://wwwsi.supelec.fr/fb/enseignement/1A/fisda/HuitReines.html
17 mars 2010 à 20:53