Python,codewars,Tic-Tac-Toe Checker,525caa5c1bf619d28c000335

'''
codewars,Tic-Tac-Toe Checker,525caa5c1bf619d28c000335
'''

def is_solved(board):
    isFull = True
    for i in range(3):
        if board[i][0]==0 or board[i][1]==0 or board[i][2]==0:
            isFull = False
        if board[i][0]!=0 and board[i][0]==board[i][1] and board[i][0]==board[i][2]:
            # 第i行
            return board[i][0]
        if board[0][i]!=0 and board[0][i]==board[1][i] and board[0][i]==board[2][i]:
            # 第i列
            return board[0][i] 
    if board[0][0]!=0 and board[0][0]==board[1][1] and board[0][0]==board[2][2]:
        # 主对角线
        return board[0][0]
    if isFull:
        return 0
    else:
        return -1
    

'''
best practice
'''

def is_solved_learn_others_code(board):
    [
        [a1,a2,a3],
        [b1,b2,b3],
        [c1,c2,c3]
    ] = board
    #行
    if a1==a2==a3==1:return 1
    if b1==b2==b3==1:return 1
    if c1==c2==c3==1:return 1
    #列
    if a1==b1==c1==1:return 1
    if a2==b2==c2==1:return 1
    if a3==b3==c3==1:return 1
    #对角线
    if a1==b2==c3==1:return 1

    #行
    if a1==a2==a3==2:return 2
    if b1==b2==b3==2:return 2
    if c1==c2==c3==2:return 2
    #列                      
    if a1==b1==c1==2:return 2
    if a2==b2==c2==2:return 2
    if a3==b3==c3==2:return 2
    #对角线                    
    if a1==b2==c3==2:return 2

    if 0 in [a1,a2,a3,b1,b2,b3,c1,c2,c3]:return -1
    else: return 0
posted @ 2025-03-07 20:34  Kazuma_124  阅读(15)  评论(0)    收藏  举报