无法理解井字游戏的功能

时间:2021-02-10 15:25:32

标签: python python-3.x

该函数假设在井字游戏中检查赢家/输家/平局

有人能解释一下这个函数发生了什么吗?

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

1 个答案:

答案 0 :(得分:2)

set 基本上从列表中删除重复项。在这种情况下,setlen 一起使用以确定列表是否仅包含一个数字,以查看是否有人填充了一行、一列或对角线。