input: 
  def play_tic_tac_toe() -> None:
      """ Play a full game of TicTacToe where two players take turns until a win is detected.
      The game starts with player 'x' and alternates with player 'o'. After each move, the board is displayed
      and the game checks if any player has won. If no win is detected and there are no more moves, the game ends.
      >>> t = TicTacToe()
      >>> t.board = [['x', 'o', 'x'], ['o', 'o', 'x'], ['x', 'x', 'o']]
      >>> t.turn = 'o'
      >>> t.check_win()
      True
      """
  
output:     board = [[' ' for _ in range(3)] for _ in range(3)]
      players = ['x', 'o']
      turn = 0
  
      def print_board():
          for row in board:
              print('|'.join(row))
              print('-' * 5)
  
      def check_win():
          for row in board:
              if row[0] == row[1] == row[2] != ' ':
                  return True
          for col in range(3):
              if board[0][col] == board[1][col] == board[2][col] != ' ':
                  return True
          if board[0][0] == board[1][1] == board[2][2] != ' ':
              return True
          if board[0][2] == board[1][1] == board[2][0] != ' ':
              return True
          return False
  
      def is_full():
          return all(cell != ' ' for row in board for cell in row)
  
      while True:
          print_board()
          player = players[turn % 2]
          print(f"Player {player}'s turn")
          row = int(input("Enter row (0, 1, 2): "))
          col = int(input("Enter column (0, 1, 2): "))
  
          if board[row][col] == ' ':
              board[row][col] = player
              if check_win():
                  print_board()
                  print(f"Player {player} wins!")
                  break
              if is_full():
                  print_board()
                  print("It's a draw!")
                  break
              turn += 1
          else:
              print("Cell already taken, try again.")