Bonjour,
je n'arrive pas à comprendre le principe utilisé pour résoudre ce problème (Voir les commentaires dans le code). En fait cet algorithme résout le problème de 8 r sur une dame.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public static void main(String[] args) { int y = 0; b[0] = -1; while (y >= 0) { do { b[y]++; System.out.println(""+b[y]);} while ((b[y] < 8) && unsafe(y)); if (b[y] < 8) { if (y < 7) { b[++y] = -1; // à ce niveau la qu'est ce qu'il fait et quand appelle exactement putboard ? System.out.println("b["+y+"] = -1"); } else { putboard(); // mettre les 8 r sur la dame } } else {y--;}//else } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 static boolean unsafe(int y) { int x = b[y]; for (int i = 1; i <= y; i++) { int t = b[y - i]; if (t == x || t == x - i || t == x + i) { // pourquoi on compare t et x +/- i ???? return true; } } return false; }
Partager