Tic Tac Toe错误Python

时间:2015-01-09 16:30:34

标签: python indexing tic-tac-toe

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

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

1 个答案:

答案 0 :(得分:0)

NUM_SQUARES == 9和python为0索引时,您可以从电路板访问的最高索引是电路板[8](这是电路板上的第九位)。

所以从WAYS_TO_WIN中的所有数字中取出1,它应该没问题。

更详细地说 - 电路板的编号从0到8,总共9个位置。 (0是第一个,8是第九个)。 WAYS_TO_WIN的最小值为1,最大值为9. 1相当于电路板上的第二位,而9则相当于不存在的第10位,这会导致错误。