Probleme 'jeu des 8 reines'
layane
-
degio1er -
degio1er -
Bonjour,je cherche une solution concernant le probleme des 8 reines.En effet, il est question de donner un algorithme qui permet de placer 8 reines dans une matice de 8 lignes ,8 colonnes. les reines ne doivent pas etre en prise c'est a dire qu'elles ne doivent pas se croiser horizontalement , verticalement, et de du point de vue des diagonales . je suis debutante et je souhaiterais que l' algorithme soit suivi de commentaires pour faciliter ma comprehension. merci pour votre aide.
A voir également:
- Probleme 'jeu des 8 reines'
- Clé windows 8 - Guide
- Mixcraft 8 - Télécharger - Création musicale
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu des logos - Télécharger - Jeux vidéo
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. }
degio1er
salut je suis degio1er. j'ai un exercice d'informatique que je ne comprends pas. il s'agit de faire la representation graphique de la fonction SINUS en langage PASCAL. je ne sas pas par où commencer et je compte vraiment sur vous. merci d'avance
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