我在下面的代码行中出现索引错误,有人可以告诉我出了什么问题以及为什么希望修复错误
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
答案 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位,这会导致错误。