Probleme 'jeu des 8 reines'

Fermé
layane - 8 avril 2008 à 13:18
 degio1er - 17 mars 2010 à 20:53
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
29 oct. 2008 à 12:14
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
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
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
0