input: class TicTacToe:
      """
      Create a TicTacToe game in Python. The game board is a 3x3 grid. Players take turns
      placing their marks ('x' or 'o') on the board. The game checks for a win condition
      after each move.
      >>> game = TicTacToe()
      >>> game.board = [['x', 'x', 'x'], ['_', '_', '_'], ['_', '_', '_']]
      >>> game.check_win()
      True
      >>> game.board = [['x', '_', '_'], ['_', 'x', '_'], ['_', '_', '_']]
      >>> game.check_win()
      False
      """
      def __init__(self):
          self.board = [['_' for _ in range(3)] for _ in range(3)]
          self.turn = 'x'
  
      def display(self):
          for row in self.board:
              print(' '.join(row))
  
      def check_win(self):
          board = self.board
          for row in self.board:
              if row.count(self.turn) == 3:
                  return True
          for col in range(3):
              if board[0][col] == board[1][col] and board[1][col] == board[2][col] and board[2][col] == self.turn:
                  return True
          if board[0][0] == board[1][1] and board[1][1] == board[2][2] and board[2][2] == self.turn:
              return True
          if board[0][2] == board[1][1] and board[1][1] == board[2][0] and board[2][0] == self.turn:
              return True
          return False
output:     def make_move(self, row, col):
          if self.board[row][col] == '_':
              self.board[row][col] = self.turn
              if self.check_win():
                  print(f"Player {self.turn} wins!")
                  return True
              self.turn = 'o' if self.turn == 'x' else 'x'
          else:
              print("Invalid move, try again.")
          return False
  
      def play(self):
          while True:
              self.display()
              move = input(f"Player {self.turn}, enter your move (row col): ").split()
              if len(move) != 2:
                  print("Invalid input, try again.")
                  continue
              row, col = int(move[0]), int(move[1])
              if row < 0 or row > 2 or col < 0 or col > 2:
                  print("Invalid move, try again.")
                  continue
              if self.make_move(row, col):
                  break