我的代码给出了正确的答案,但它在达到边界后继续计数 我只为主教写了左上的棋子
我为棋盘[8][8]创建了一个数组,并使用 FEN 代码定位了主教 在 xkoord 数组中,我给出了行号 12345678 在 ykoord 数组中,我给出了列字母 abcdefgh 这只是我的代码的一小部分,仅用于主教的合法动作
void bishop()
{
int j = 0, i = 0, x = 0, y = 0;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
{
if (chessboard[j][i] == 'B')
{
for (x = i - 1; x < 8; x--)
{
for (y = j - 1; y < 8; y--)
{
if (x >= 0 && x < 8 && y >= 0 && y < 8)
{
if (chessboard[y][x] == 'x')
{
printf("B%c%d\n", xkoord[x], ykoord[y]);
}
}`your text`
}
}
}
}
}
printf("\n-----------------------\n");
}
错误的测试
示例:
// for (x = i - 1; x < 8; x--)
for (x = i - 1; x >= 0; x--)
错过尝试其他 3 个移动方向的尝试