Lösung des Damenproblems
Schachbrett (n*n Felder) + n Damen -- in Java
public class Damenproblem {
static int number = 1;
static int[] aDamen = new int[8];
public static void main(String[] args) {
setzeDame(0, 8);
}
private static void setzeDame(int n, int D) {
int i;
if(n==D){ ausgabe(n); }
else{
for(i=0; i<D; i++){
int yes = testeDame(i,n);
if(yes==0){
aDamen[n]=i;
setzeDame(n+1, D);
}
}
}
}
private static int testeDame(int ix, int iy) {
int i;
for(i=0; i<iy; i++){
if(aDamen==ix){ return 1; }
int a = (aDamen-ix);
int b = (i-iy);
if(a<0){ a = a*(-1); }
if(b<0){ b = b*(-1); }
if(a==b){ return 1; }
}
return 0;
}
private static void ausgabe(int m) {
int i, j;
System.out.print("\nNummer: " + number + "\n" );
for(i=0; i<m; i++) {
for(j=0; j<m; j++){
if(j==aDamen){ System.out.print("|D" ); }
else{ System.out.print("| " ); }
}
System.out.print("|\n" ) ;
}
number+=1;
}
}