(self,
                 env_args,
                 lut_holder,
                 is_evaluating,
                 )
Args:
            env_args:               Depending on game type an instance of PokerEnvArgs or DiscretePokerEnvArgs

            lut_holder:             Depending on game type. An instance of a subclass of LutHolder. It is not checked
                                    whether the correct one is passed, so be sure to pass the right one!
                                    lut_holder could theoretically be created encapsulated by an instance of this class,
                                    but for optimization (i.e. only one per machine, not per env), we pass it.

            is_evaluating (bool):   Whether the environment shall be spawned in evaluation mode (i.e. no randomization)
                                    or not.
Args:
            env_args:               Depending on game type an instance of PokerEnvArgs or DiscretePokerEnvArgs
Args : env_args : Depending on game type an instance of PokerEnvArgs or DiscretePokerEnvArgs
def __init__(self,
                 env_args,
                 lut_holder,
                 is_evaluating,
                 ):
        """
        Args:
            env_args:               Depending on game type an instance of PokerEnvArgs or DiscretePokerEnvArgs

            lut_holder:             Depending on game type. An instance of a subclass of LutHolder. It is not checked
                                    whether the correct one is passed, so be sure to pass the right one!
                                    lut_holder could theoretically be created encapsulated by an instance of this class,
                                    but for optimization (i.e. only one per machine, not per env), we pass it.

            is_evaluating (bool):   Whether the environment shall be spawned in evaluation mode (i.e. no randomization)
                                    or not.
        """
        assert env_args.n_seats >= 2

        self._args = copy.deepcopy(env_args)
        self.lut_holder = lut_holder
        self.IS_EVALUATING = is_evaluating

        # deck of cards
        self.deck = DeckOfCards(num_suits=self.N_SUITS, num_ranks=self.N_RANKS)

        # Initialize args
        self.BTN_POS = NotImplementedError
        self.SB_POS = NotImplementedError
        self.BB_POS = NotImplementedError
        self._USE_SIMPLE_HU_OBS = NotImplementedError
        self.RETURN_PRE_TRANSITION_STATE_IN_INFO = NotImplementedError
        self.N_SEATS = NotImplementedError
        self.MAX_CHIPS = NotImplementedError
        self.STACK_RANDOMIZATION_RANGE = NotImplementedError
        self.REWARD_SCALAR = NotImplementedError
        self.seats = NotImplementedError
        self._init_from_args(env_args=env_args, is_evaluating=is_evaluating)

        # ______________________________  Observation- & Action-space ______________________________
        self.observation_space, self.obs_idx_dict, self.obs_parts_idxs_dict = self._construct_obs_space()
        self.hole_card_space_shape = [self.N_HOLE_CARDS, 2]

        # __________________________________  episode state vars  __________________________________
        # all these vars should be initialized by calling env.reset() in the training script.
        self.current_round = None
        self.side_pots = None  # chip count in side pot.  list with len=n_seats
        self.main_pot = None  # chip count in main pot
        self.board = None  # np.ndarray(shape=(n_cards, 2))
        self.last_action = None  # list of 3 ints: [action_idx, _raise_amount, player.seat_id]
        self.capped_raise = CappedRaise()  # [happend_this_round, player_that_raised, player_that_cant_reopen]
        self.current_player = None  # PokerPlayer instance of player currently having to get_action
        self.last_raiser = None  # PokerPlayer instance
        self.n_actions_this_episode = None  # Number of actions performed this episode

        # only relevant in Limit games
        self.n_raises_this_round = NotImplementedError
def __init__ ( self , env_args , lut_holder , is_evaluating , ) : assert env_args . n_seats >= 2 self . _args = copy . deepcopy ( env_args ) self . lut_holder = lut_holder self . IS_EVALUATING = is_evaluating # deck of cards self . deck = DeckOfCards ( num_suits = self . N_SUITS , num_ranks = self . N_RANKS ) # Initialize args self . BTN_POS = NotImplementedError self . SB_POS = NotImplementedError self . BB_POS = NotImplementedError self . _USE_SIMPLE_HU_OBS = NotImplementedError self . RETURN_PRE_TRANSITION_STATE_IN_INFO = NotImplementedError self . N_SEATS = NotImplementedError self . MAX_CHIPS = NotImplementedError self . STACK_RANDOMIZATION_RANGE = NotImplementedError self . REWARD_SCALAR = NotImplementedError self . seats = NotImplementedError self . _init_from_args ( env_args = env_args , is_evaluating = is_evaluating ) # ______________________________  Observation- & Action-space ______________________________ self . observation_space , self . obs_idx_dict , self . obs_parts_idxs_dict = self . _construct_obs_space ( ) self . hole_card_space_shape = [ self . N_HOLE_CARDS , 2 ] # __________________________________  episode state vars  __________________________________ # all these vars should be initialized by calling env.reset() in the training script. self . current_round = None self . side_pots = None # chip count in side pot.  list with len=n_seats self . main_pot = None # chip count in main pot self . board = None # np.ndarray(shape=(n_cards, 2)) self . last_action = None # list of 3 ints: [action_idx, _raise_amount, player.seat_id] self . capped_raise = CappedRaise ( ) # [happend_this_round, player_that_raised, player_that_cant_reopen] self . current_player = None # PokerPlayer instance of player currently having to get_action self . last_raiser = None # PokerPlayer instance self . n_actions_this_episode = None # Number of actions performed this episode # only relevant in Limit games self . n_raises_this_round = NotImplementedError