Probleme 'jeu des 8 reines'

layane -  
 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:

2 réponses

bonjour tt le monde
 
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. }
3
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
0
Utilisateur anonyme
 
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
0