Tic Tac Toe - 如果有赢家,我该如何停止游戏,

TicTacToe - How do i stop the game if theres a winner,

这就是程序接收数据的方式

 x_data = []
    def xuser_input():
        while True:
            x = As("Player X, Please enter a number to place: ",int)
            if (x > 10) or (x < 0):
                print("Input must be Bigger than 0 and Smaller than 9")
                continue
            try:
                board[x] = "X"
                x_data.append(x)
            except (IndexError):
                print("Invalid input")
                continue
            t_Board()
            break

Y 也会有另一个。 这是井字板

def t_Board():
    print(f"| {board[0]} | {board[1]} | {board[2]} |\n_____________")
    print(f"| {board[3]} | {board[4]} | {board[5]} |\n_____________")
    print(f"| {board[6]} | {board[7]} | {board[8]} |")

如果满足此条件即获胜公式,这将停止游戏。

    def stops_board():
        if (board[0] == board[1] == board[2]) or (board[3] == board[4] == board[5]) or (
        board[6] == board[7] == board[8]) or (board[0] == board[3] == board[6]) or (
        board[1] == board[4] == board[7]) or (board[2] == board[5] == board[8]) or (
        board[0] == board[4] == 
        board[8]) or (board[2] == board[4] == board[6]):
            return False

现在这就是我询问数据输入并检查是否有获胜解决方案的方式

 while True:
        xuser_input()
        stops_board()
        yuser_input()
        stops_board()

如我所见,如果游戏应该停止,stops_board() 应该 return True,如果应该继续,则为 False。正确的?如果是这样,您可以使用:

 while True:
        xuser_input()
        if stops_board(): break
        yuser_input()
        if stops_board(): break
def stops_board():
    if (board[0] == board[1] == board[2]) or (board[3] == board[4] == board[5]) or (
    board[6] == board[7] == board[8]) or (board[0] == board[3] == board[6]) or (
    board[1] == board[4] == board[7]) or (board[2] == board[5] == board[8]) or (
    board[0] == board[4] == board[8]) or (board[2] == board[4] == board[6]):
        return True



 while True:
        xuser_input()
        if stops_board(): break
        yuser_input()
        if stops_board(): break

你先搞清楚步骤:

  1. 随机初始化棋盘(设置棋盘列表,玩家姓名,玩家签名(X或O)
  2. 设置一个while循环并执行以下操作
  3. 向玩家询问有效位置
  4. 检查位置是否有效
  5. 将棋盘索引设置为玩家的符号
  6. 检查玩家是否获胜并打破循环
  7. 检查棋盘是否已填满,如果为真则为平局
  8. 更换播放器并转到第 3 步

Function to initialise board, check valid postition and draw the board

check if there is a winner or it is a draw

The gameplay