我正致力於計算出我可以放在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)非常相似,並且你可能想看看它。遺傳算法或爬山將成爲你的朋友。 –