code: def check_the_end_flag(self, state_arr):
          '''
          Check the end flag.
          
          If this return value is `True`, the learning is end.
  
          As a rule, the learning can not be stopped.
          This method should be overrided for concreate usecases.
  
          Args:
              state_arr:    `np.ndarray` of state in `self.t`.
  
          Returns:
              bool
          '''
          if self.__check_goal_flag(state_arr) is True or self.__check_crash_flag(state_arr):
              return True
          else:
              return Falsf check_the_end_flag(self, state_arr):
          '''
          Check the end flag.
          
          If this return value is `True`, the learning is end.
  
          As a rule, the learning can not be stopped.
          This method should be overrided for concreate usecases.
  
          Args:
              state_arr:    `np.ndarray` of state in `self.t`.
  
          Returns:
              bool
          '''
          if self.__check_goal_flag(state_arr) is True or self.__check_crash_flag(state_arr):
              return True
          else:
              return False
docs: Check the end flag.
          
          If this return value is `True`, the learning is end.
  
          As a rule, the learning can not be stopped.
          This method should be overrided for concreate usecases.
  
          Args:
              state_arr:    `np.ndarray` of state in `self.t`.
  
          Returns:
              bool