Rechercher : dans
Par :

Probleme 'jeu des 8 reines'

Dernière réponse le 29 oct 2008 à 12:14:11 layane, le 8 avr 2008 à 13:18:56 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « probleme 'jeu des 8 reines' » dans :
Réinstaller Internet Explorer VoirLorsque vous essayez de réinstaller Internet Explorer, Windows vous affiche un des messages d'erreur suivants : Le programme d'installation a détecté une version plus récente de Internet Explorer, déjà installée sur votre ordinateur. ou Le programme...
Repartitionner, installer Linux (Ubuntu 8.04), conserver Windows VoirCet article va vous guider pour installer Linux sur votre ordinateur en repartitionnant votre disque et en conservant Windows. Vous n'aurez pas à réinstaller Windows. Nous allons installer Ubuntu 8.04 qui est une distribution de Linux facile à...
[Gravure] Effacer un disque réinscriptible (CD-RW/DVD-RW/DVD+RW) VoirIl n'est pas nécessaire de formater un disque réinscriptible lors de la première utilisation. Néanmoins, lorsque des données ont été gravées sur le support réinscriptible et qu'il ne reste plus d'espace disponible, il est nécessaire de les effacer...

1

=[Cvrd]=Tassin, le 8 avr 2008 à 15:09:33

Tu peux trouver un exemple ici : http://www.loria.fr/~cirstea/TEACHING/ALGOAV/algo002.html

Un exécutable java qui fonctionne pas à pas : http://wwwsi.supelec.fr/fb/enseignement/1A/fisda/HuitReines.­html -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --

Répondre à =[Cvrd]=Tassin

2

 bonjour tt le monde, le 29 oct 2008 à 12:14:11
  • +1

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. }

Répondre à bonjour tt le monde