合法主教迁入C

问题描述 投票:0回答:1

我的代码给出了正确的答案,但它在达到边界后继续计数 我只为主教写了左上的棋子

我为棋盘[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");
}
c chess
1个回答
0
投票

错误的测试

示例:

// for (x = i - 1; x < 8; x--)
for (x = i - 1; x >= 0; x--)

错过尝试其他 3 个移动方向的尝试

© www.soinside.com 2019 - 2024. All rights reserved.