docs: def is_full(self):
          """:class:`GridEnvironment` is full when its **grid** is fully
          populated with agents.
  
          :returns:
              True if the grid is full, False otherwise. Will also return False
              for uninitialized grids with (0,0) grid size.
          """
          if len(self.grid) == 0:
              return False
  
          for i in range(len(self.grid)):
              for j in range(len(self.grid[0])):
                  if self.grid[i][j] is None:
                      return False
          return True