有些部分代码我不太懂,有人可以向我解释
def winner(board):
WAYS_TO_WIN = ((0, 1, 2),
(3, 4, 5),
(6, 7, 8),
(0, 3, 6),
(1, 4, 7),
(2, 5, 8),
(0, 4, 8),
(2, 4, 6))
for row in WAYS_TO_WIN:
if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY:
winner = board[row[0]]
return winner
if EMPTY not in board:
return TIE
return None
答案 0 :(得分:2)
这是一种检查董事会状态是否为胜利状态的方法。董事会安排有以下指数:
0 1 2
3 4 5
6 7 8
因此,获胜(0,1,2)的元组检查第一行是否完全相同。 (0,3,6)元组检查第一列是否完全相同。最后,(0,4,8)检查向下和向右的对角线。它通过您询问的if语句执行此操作:
if board[row[0]] == board[row[1]] == board[row[2]] != EMPTY:
例如,对于(0,3,6)行,它会查看电路板索引0,将其与电路板索引3和电路板索引6进行比较,如果它们彼此相等且不等于EMPTY那么这是一个任何玩家填补这些广场的胜利条件。
空可能是说两个玩家都没有在该方格中放置一个标记的标记,所以:
if EMPTY not in board:
return TIE
基本上说,如果董事会已满并且没有人是胜利者,那么这就是平局。