Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tic tac toe检查玩家是否获胜的方法_Python_Processing_Tic Tac Toe - Fatal编程技术网

Python tic tac toe检查玩家是否获胜的方法

Python tic tac toe检查玩家是否获胜的方法,python,processing,tic-tac-toe,Python,Processing,Tic Tac Toe,我还不熟悉OOP编程和编写紧凑的代码,所以我可能忽略了一些东西,我试图找出一种方法来检查tic tac toe中的垂直胜利和对角胜利,我已经有了水平胜利 如果可能的话,有没有办法把另外两种方法合并到我已经有的东西中 #creates the gameboard that stores if spaces are open or not game_board = [ [0,0,0], [0, 0, 0], [0, 0, 0,] ] #0 = open space #1 = O #2 = X #c

我还不熟悉OOP编程和编写紧凑的代码,所以我可能忽略了一些东西,我试图找出一种方法来检查tic tac toe中的垂直胜利和对角胜利,我已经有了水平胜利

如果可能的话,有没有办法把另外两种方法合并到我已经有的东西中

#creates the gameboard that stores if spaces are open or not
game_board = [ [0,0,0], [0, 0, 0], [0, 0, 0,] ]
#0 = open space
#1 = O
#2 = X

#check for winners horizontaly
def find_winner():
    # y represents the y axis
    for y in range(3):
        if game_board[y][0] == game_board[y][1] == game_board[y][2] != 0:
            #returns if the X or 0 has won
            return game_board[y][0] 
    #returns 0 if no-one has won   
    return 0    
您可以添加更多类似以下内容的if语句:

game_board = [ [0, 0, 0],
               [0, 0, 0],
               [0, 0, 0,] ]

def find_winner():
    for y in range(3):
        if game_board[y][0] == game_board[y][1] == game_board[y][2] != 0: # Check horizontal
            return game_board[y][0]
        if : # Check vertical
            return game_board[0][y]
    if game_board[0][0] == game_board[1][1] == game_board[2][2] != 0 or game_board[0][2] == game_board[1][1] == game_board[2][0] != 0: # Check diagonal
        return game_board[1][1]
    return 0  
您可以添加更多类似以下内容的if语句:

game_board = [ [0, 0, 0],
               [0, 0, 0],
               [0, 0, 0,] ]

def find_winner():
    for y in range(3):
        if game_board[y][0] == game_board[y][1] == game_board[y][2] != 0: # Check horizontal
            return game_board[y][0]
        if : # Check vertical
            return game_board[0][y]
    if game_board[0][0] == game_board[1][1] == game_board[2][2] != 0 or game_board[0][2] == game_board[1][1] == game_board[2][0] != 0: # Check diagonal
        return game_board[1][1]
    return 0  

这可能会有所帮助,这是垂直和对角检查的两个功能

# Checks for vertical row 
def win(game_board, player): 
    for x in range(len(game_board)): 
        win = True

        for y in range(len(game_board)): 
            if game_board[y][x] != player: 
                win = False
                continue

        if win == True: 
            return(win) 
    return(win) 

# Checks diagonal win 
def diag_win(game_board, player): 
    win = True
    y = 0
    for x in range(len(game_board)): 
        if game_board[x, x] != player: 
            win = False
    win = True
    if win: 
        for x in range(len(game_board)): 
            y = len(game_board) - 1 - x 
            if game_board[x, y] != player: 
                win = False
    return win 


如果您有任何疑问或建议,请随时发表评论。对于上述功能,随机选择玩家。使用函数是一种很好的做法

也许这会有所帮助,这是用于垂直和对角检查的两个函数

# Checks for vertical row 
def win(game_board, player): 
    for x in range(len(game_board)): 
        win = True

        for y in range(len(game_board)): 
            if game_board[y][x] != player: 
                win = False
                continue

        if win == True: 
            return(win) 
    return(win) 

# Checks diagonal win 
def diag_win(game_board, player): 
    win = True
    y = 0
    for x in range(len(game_board)): 
        if game_board[x, x] != player: 
            win = False
    win = True
    if win: 
        for x in range(len(game_board)): 
            y = len(game_board) - 1 - x 
            if game_board[x, y] != player: 
                win = False
    return win 

如果您有任何疑问或建议,请随时发表评论。对于上述功能,随机选择玩家。最好只使用3个列表理解函数

所有的胜利和位置 游戏板=[[1,0,1], [0, 1, 0], [0, 1, 0] ] 水平的 h=[stri+1+“行”表示游戏板中的i,v,如果sumv==3] 垂直线 v=[stri+1+“Col”表示范围3中的i,如果和[j[i]表示游戏板中的j]==3] 对角线 如果和[game_board[0][1+i],game_board[1][1]],game_board[2][1-i]==3],则d=[[i+1]中的i为[i+1] 如果有[h,v,d]: 打印“你赢了:”,h,v,d 其他: 打印“尚未获胜” 只有3个列表理解 所有的胜利和位置 游戏板=[[1,0,1], [0, 1, 0], [0, 1, 0] ] 水平的 h=[stri+1+“行”表示游戏板中的i,v,如果sumv==3] 垂直线 v=[stri+1+“Col”表示范围3中的i,如果和[j[i]表示游戏板中的j]==3] 对角线 如果和[game_board[0][1+i],game_board[1][1]],game_board[2][1-i]==3],则d=[[i+1]中的i为[i+1] 如果有[h,v,d]: 打印“你赢了:”,h,v,d 其他: 打印“尚未获胜”