相互に攻撃することなく、nxnボードに配置できるビショップの最大数を把握することに取り組んでいます. 対角線のチェックに問題があります。以下は、対角線を確認する私の方法です。ビショップが現在ある正方形は true としてマークされているため、メソッドは対角線をチェックすることになっています。true が返された場合、ビショップを配置するメソッドは次の行に移動します。
何がうまくいかないのかよくわかりません。助けていただければ幸いです。
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;
}