优化tic tac toe检查

时间:2015-05-10 20:32:11

标签: python optimization tic-tac-toe

对于我的项目,我必须做一个tic-tac-toe求解器,我想请求一些优化代码的帮助。

任务:根据获胜者(x或o),返回适当的结果

我是怎么做到的:我检查了结果的水平,垂直和对角线策略

我需要帮助:我主要重复相同的代码,但每个案例的if语句不同,我只是想知道是否有更通用的方法来执行此操作。

现行守则: (对角线胜利)

 if diagcounter==size and (board[0][0]=="x") :
        print("Win Diagonally")
        return "X has won"
    elif diagcounter==size and (board[0][0]=="o"):
        print("Win Diagonally")

横向胜利:

 if vertcounter==size and board[0][x]=="x":
            print("Win vertically")
            return "X has won"
        elif vertcounter==size and board[0][x]=="o":
            print("Win vertically")
            return "O has won"

如您所见,它们几乎相同,但由于我需要在现场检查信件,我不知道如何优化它。

1 个答案:

答案 0 :(得分:0)

您可以创建一个函数来处理“获胜”并让您的if语句调用它。

def win(method, team):
    print("Win "+method)
    return team+" has won"

if diagcounter==size and (board[0][0]=="x") :
    return(win("diagonally", "x"))
elif diagcounter==size and (board[0][0]=="o"):
    return(win("diagonally", "o"))
if vertcounter==size and board[0][x]=="x":
    return(win("vertically", "x"))
elif vertcounter==size and board[0][x]=="o":
    return(win("vertically", "o"))