private int numberOfDiagonalAttacksOn(int x, int y)
{
int retVal = 0;
int i;
int j;
// forward up diagonal
for (i = (x + 1), j = (y - 1); (i < size && (j > -1)); i++, j--)
{
if (queenExistsAt(i, j))
retVal++;
}
// forward down diagonal
for (i = (x + 1), j = (y + 1); ((i < size) && (j < size)); i++, j++)
{
if (queenExistsAt(i, j))
retVal++;
}
// backward up diagonal
for (i = (x - 1), j = (y - 1); ((i > -1) && (j > -1)); i--, j--)
{
if (queenExistsAt(i, j))
retVal++;
}
// backward down diagonal
for (i = (x - 1), j = (y + 1); ((i > -1) && (j < size)); i--, j++)
{
if (queenExistsAt(i, j))
retVal++;
}
return retVal;
}