Python Pygame致胜对角线移动不起作用

2024-06-16 11:55:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用Pygame在python中制作了一个connectfour游戏,但是我现在被卡住了

水平和垂直的制胜招式是有效的,但是从左上角到右下角的对角线是无效的,尽管从左下角到右上角是有效的。我找不到问题。也许有人能帮我

我的代码:

def controleer_winnaar(beurt):

    for x in range(RIJEN - 3):
        for y in range(KOLOMMEN):
            #berekening voor verticaal winnen
            if(bord[x][y] == beurt and bord[x + 1][y] == beurt and bord[x + 2][y] == beurt and bord[x + 3][y] == beurt):
                return True

    for x in range(RIJEN):
        for y in range(KOLOMMEN - 3):
            # berekening voor horizontaal winnen
            if (bord[x][y] == beurt and bord[x][y + 1] == beurt and bord[x][y + 2] == beurt and bord[x][y + 3] == beurt):
                return True

    for x in range(RIJEN - 3):
        for y in range(KOLOMMEN - 3):
            # berekening voor schuin-omhoog winnen
            if (bord[x][y] == beurt and bord[x + 1][y + 1] == beurt and bord[x + 2][y + 2] == beurt and bord[x + 3][y + 3] == beurt):
                return True

    for x in range(RIJEN - 3):
        for y in range(KOLOMMEN - 3):
            # berekening voor schuin-omlaag winnen
            if (bord[x][y] == beurt and bord[x + 1][y - 1] == beurt and bord[x + 2][y - 2] == beurt and bord[x + 3][y - 3] == beurt):
                return True

Tags: andintrueforreturnifrangebord
1条回答
网友
1楼 · 发布于 2024-06-16 11:55:55

循环限制错误:需要移动起始点的矩形,以便列值在正确的范围内:

for x in range(RIJEN - 3):
    for y in range(3, KOLOMMEN):
        # berekening voor schuin-omlaag winnen
        if (bord[x][y] == beurt and bord[x + 1][y - 1] == beurt and bord[x + 2][y - 2] == beurt and bord[x + 3][y - 3] == beurt):
            return True

这种情况下,yy-3有适当的值,它将到达远角,而不是从bord的另一端流出

相关问题 更多 >