8 damen sollen so platziert werden, dass sie sich gegenseitig nicht angreifen. das folgende javaprogramm löst dieses kleine, lustige problem.
public class Schachspiel {
public static void main(String[] args) {
int n = 8;
int[] a = new int[n];
setzeDame(a, 0);
}
static void setzeDame(int[] a, int n) {
if (n == a.length) {
int z = 1;
for (int x : a)
System.out.print(x + 1 + " ");
System.out.println();
}
else {
for (int i = 0; i < a.length; i++) {
if (n == 0) {
a[0] = n;
setzeDame(a, n + 1);
}
int x = 0;
for (int j = 0; j < n; j++) { // durchlauft alle Zeilen
// kleiner als aktuelle Zeile
if (a[j] != i) // alle zeilen vorher muessen andere Werte haben
if (a[j] != i + (n - j)) // diagonale pruefen, rechts
if (a[j] != i - (n - j)) // diagonale pruefen, links
x++; // wenn alles zutrifft, erhoehe x
}
if (x == n) { // wenn x fuer alle zeilen erhoeht wurde, setze
a[n] = i; // Dame und mach weiter in nächster Zeile
setzeDame(a, n + 1);
/*
* sollte dieser rekursive Aufruf nicht zum Ergebniss führen,
* wird die schleife (mit j) weitergeführt ...
*/
}
}
}
}
}