在西洋棋裡, 皇后可以在方格盤面上的任意一個方向走任意步.
請問在一個8x8的盤面上, 如何擺上8個皇后, 使她們彼此都吃不到? 共有幾種擺法?
/* 此函數在螢幕上顯示盤面狀況
*/
void showBoard(char board[]) {
}
/* 此函數試圖在board上面的第at row上放一個皇后,
若找到可以放的位置, 就遞迴呼叫自己以便在at+1 row放上另一個Queen,
若所放的是最後一個row, 則印出整個盤面
*/
void putOneQueen(char board[], int at) {
// 檢查at row上的每一個column(有8個要檢查)
// 如果要放上去的地方不在任何一個皇后的勢力範圍內
// 放上新皇后
// 建立新皇后的勢力範圍(有八個方向要設定)
// 如果at是8, 表示已經放了八個皇后了, 把盤面印出來
// 否則遞迴呼叫自己以便在下一個row放入新皇后
// 移除此皇后
// 移除此皇后的勢力範圍(有八個方向要設定)
}
int main() {
putOneQueen(initBoard, 1);
printf("八皇后問題共有%d組解\n", solutions);
}