井字错误 Python

Tic Tac Toe Error Python

我在以下代码行中遇到索引错误,有人可以告诉我哪里出了问题以及为什么希望修复错误

for row in WAYS_TO_WIN:
    if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY:
        winner = board[row[0]]
        return winner

完整代码是:

def winner(board, EMPTY):
    #If you have won
    TIE = "TIE"
    WAYS_TO_WIN = ((1, 2, 3),
                   (4, 5, 6),
                   (7, 8, 9),
                   (1, 4, 7),
                   (2, 5, 8),
                   (3, 6, 9),
                   (1, 5, 9),
                   (3, 5, 7))

    for row in WAYS_TO_WIN:
        if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY:
            winner = board[row[0]]
            return winner

由于NUM_SQUARES == 9和python的索引为0,因此您可以从板中访问的最高索引是板[8](板中的第九位)。

所以WAYS_TO_WIN中的所有数字都减1应该没问题。

更详细 - 板的索引从 0 到 8,总共 9 个位置。 (0 是第一个,8 是第九个)。 WAYS_TO_WIN最小值为1,最大值为9。1相当于棋盘上的第二名,9相当于不存在的第十名,这会导致错误。