Не срабатывает if, elif python

246 просмотра
0
0 Комментариев

Есть вот такой код (игра крестики-нолики):

for i in range(len(self.coubsfull)):
    for k in range(len(self.coubsfull)):
        try:
            if self.coubsfull[i][k] == self.coubsfull[i+1][k] == self.coubsfull[i+2][k] != 1:
                print('yes1')
                if self.coubsfull[i][k] == 'X':
                    player1.win = True
                else:
                    player2.win = True
                fig.drawline_vertical()
            elif self.coubsfull[i][k] == self.coubsfull[i][k+1] == self.coubsfull[i][k+2] != 1:
                print('yes2')
                if self.coubsfull[i][k+1] == 'X':
                    player1.win = True
                else:
                    player2.win = True
                fig.drawline_horizontal()
            elif self.coubsfull[i][k] == self.coubsfull[i+1][k+1] == self.coubsfull[i+2][k+2] != 1:
                fig.drawline_diagonal()
                if self.coubsfull[i][k] == 'X':
                    player1.win = True
                else:
                    player2.win = True
            elif self.coubsfull[i][k+2] == self.coubsfull[i+1][k+1] == self.coubsfull[i+2][k] != 1:
                fig.drawline_diagonal_reverse()
                if self.coubsfull[i][k+2] == 'X':
                    player1.win = True
                else:
                    player2.win = True
        except IndexError:
            True

Допустим,

self.coubsfull = [
    [1, 1, 'X'],
    ['X', 'X', 1],
    ['0', '0', '0']
]

(1 — пустые клетки)

При таком раскладке должен срабатывать второй условный блок, однако этого не происходит.

Задавал вопрос про обработку, предложили вариант сравнения через numpy, но я пока еще не пробовал.

Как сравнить элементы внутри двумерного списка (python)?


Добавить комментарий

1 Ответы

Python Опубликовано 18.12.2018
0

Уже не актуально 🙂
Каждый условный блок добавил в try-except

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up