To practice what I've learned about backtracking algorithms, I'm trying to solve the N-Queen problem.
I've written some functions to check if a move is legal, but I can't see how to implement those using backtracking.
bool manger_ligne (int a[][4],int i) {
for (int j=0;j<4;j++) {
if (a[i][j] == 1)
return false ;
}
return true;
}
bool manger_col (int a[][4],int j) {
for (int i=0;i<4;i++) {
if (a[i][j] == 1)
return false ;
}
return true ;
}
bool isTrue (int a[][4],int i,int j,int k) {
if (k==0) {
return 1;
}
if (i > 3 && j > 3) {
return 0;
}
if (manger_diagonal(a, i, j) == true && manger_col(a, j) == true &&
manger_ligne(a, i) == true) {
a[i][j] = 1;
if (isTrue(a, i, j+1 ,k) == true) {
if (isTrue(a, i+1,j ,k) == true) //backtracking problem
return true;
}
a[i][j] = 0;
}
return false ;
}