井字错误 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相当于不存在的第十名,这会导致错误。
我在以下代码行中遇到索引错误,有人可以告诉我哪里出了问题以及为什么希望修复错误
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相当于不存在的第十名,这会导致错误。