皇后放置可行性检查函数:C++ 代码解释
该函数 canPlace(Queen q) 用于检查新的皇后是否可以放置在棋盘上。
首先,通过一个循环遍历之前已经放置的皇后(stack 数组),检查新皇后的位置是否和之前的皇后处于同一列或同一对角线上。
如果新皇后的位置和之前的皇后处于同一列或同一对角线上,则返回 0,表示不能放置该皇后;否则返回 1,表示可以放置该皇后。
其中,abs() 函数用于求绝对值。
int canPlace(Queen q) {
int i;
for (i = 1; i <= top; ++i) {
if (stack[i].y == q.y // 同列
|| abs(stack[i].x - q.x) == abs(stack[i].y - q.y)) { // 同对角线
return 0;
}
}
return 1;
}
原文地址: https://www.cveoy.top/t/topic/oBJ8 著作权归作者所有。请勿转载和采集!