comprendre le fonctionnement de ces lignes de code java
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:
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:
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;
} |