我正致力于计算出我可以放在nxn棋盘上的主教队伍的最大数量,而不会让他们互相攻击。我无法检查对角线。以下是我检查对角线的方法。主教目前所在的格子被标记为真,所以该方法应该检查对角线,如果它返回true,那么放置主教的方法将移动到下一行。Java主教国际象棋棋盘
林不知道怎么回事,任何帮助将不胜感激。
private boolean bishopAttack(int row, int column)
{
int a,b,c;
for(a = 1; a <= column; a++)
{
if(row<a)
{
break;
}
if(board[row-a][column-a])
{
return true;
}
}
for(b = 1; b <= column; b++)
{
if(row<b)
{
break;
}
if(board[row+b][column-b])
{
return true;
}
}
for(c = 1; b <= column; b++)
{
if(row<c)
{
break;
}
if(board[row+c][column+c])
{
return true;
}
}
return false;
}
搜索 “回溯” 规划算法。这是一个递归的。经常在学校用作功课,在实践中...几乎从不...... – 2013-02-04 04:27:58
这与[N-Queens问题](http://www.math.utah.edu/~alfeld/queens/queens.html)非常相似,并且你可能想看看它。遗传算法或爬山将成为你的朋友。 –