该函数假设在井字游戏中检查赢家/输家/平局
有人能解释一下这个函数发生了什么吗?
def check(grid):
for i in range(0,3):
row = set([grid[i][0],grid[i][1],grid[i][2]])
if len(row) == 1 and grid[i][0] != 0:
return grid[i][0]
for i in range(0,3):
column = set([grid[0][i],grid[1][i],grid[2][i]])
if len(column) == 1 and grid[0][i] != 0:
return grid[0][i]
diag1 = set([grid[0][0],grid[1][1],grid[2][2]])
diag2 = set([grid[0][2],grid[1][1],grid[2][0]])
if len(diag1) == 1 or len(diag2) == 1 and grid[1][1] != 0:
return grid[1][1]
return 0
答案 0 :(得分:2)
set
基本上从列表中删除重复项。在这种情况下,set
与 len
一起使用以确定列表是否仅包含一个数字,以查看是否有人填充了一行、一列或对角线。