class_docstr: Connect4 Game class implementing the alpha-zero-general Game interface.
  
  Use 1 for player1 and -1 for player2.
docstr: Returns a copy of the board with updated move, original board is unmodified.
  
  Input:
      board: current board
      player: current player (1 or -1)
      action: action taken by current player
  
  Returns:
      nextBoard: board after applying action
      nextPlayer: player who plays in the next turn (should be -player)
docstr_tok: ["Returns","a","copy","of","the","board","with","updated","move",",","original","board","is","unmodified",".","Input",":","board",":","current","board","player",":","current","player","(","1","or","-1",")","action",":","action","taken","by","current","player","Returns",":","nextBoard",":","board","after","applying","action","nextPlayer",":","player","who","plays","in","the","next","turn","(","should","be","-player",")"]
code: def getNextState(self, board, player, action):
      """Returns a copy of the board with updated move, original board is unmodified.
  
      Input:
          board: current board
          player: current player (1 or -1)
          action: action taken by current player
  
      Returns:
          nextBoard: board after applying action
          nextPlayer: player who plays in the next turn (should be -player)
  
      """
      b = self._base_board.with_np_pieces(np_pieces=np.copy(board))
      b.add_stone(action, player)
      return b.np_pieces, -player
  
imports: import numpy
  from collections import namedtuple
label_desc: Use image node_id 5 for calling the Connect4Game obj's underlying member method code with example usage: obj.getNextState(board, player, action) and returns: b,  unknown