Python Pygame выигрышный ход по диагонали не работает - PullRequest
0 голосов
/ 29 ноября 2018

Я создал игру Connect Four на python, используя Pygame, но сейчас я застрял.

Горизонтальные и вертикальные выигрышные ходы работают, но диагональ от верхнего левого угла до правого нижнего не работает, хотя от левого нижнего до верхнего правого угла работает.Я не могу найти проблему.Может быть, кто-то может мне помочь?

Мой код:

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

1 Ответ

0 голосов
/ 29 ноября 2018

У вас неправильные пределы цикла: вам нужно сместить прямоугольник ваших начальных точек, чтобы значения столбцов находились в правильном диапазоне:

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

В в этом случае, у вас есть правильные значения для y: y-3, которые дойдут до дальнего угла, а не сорвутся с противоположного конца bord.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...