code: def compute_fov(self, x, y, fov='PERMISSIVE', radius=None,
                      light_walls=True, sphere=True, cumulative=False):
          
          # refresh cdata
          if radius is None: # infinite radius
              radius = 0
          if cumulative:
              fov_copy = self.fov.copy()
          lib.TCOD_map_compute_fov(
              self.map_c, x, y, radius, light_walls, _get_fov_type(fov))
          if cumulative:
              self.fov[:] |= fov_copy
          return zip(*np.where(self.fov))
docs: Compute the field-of-view of this Map and return an iterator of the
          points touched.
  
          Args:
              x (int): Point of view, x-coordinate.
              y (int): Point of view, y-coordinate.
              fov (Text): The type of field-of-view to be used.
  
                  Available types are:
                  'BASIC', 'DIAMOND', 'SHADOW', 'RESTRICTIVE', 'PERMISSIVE',
                  'PERMISSIVE0', 'PERMISSIVE1', ..., 'PERMISSIVE8'
              radius (Optional[int]): Maximum view distance from the point of
                  view.
  
                  A value of 0 will give an infinite distance.
              light_walls (bool): Light up walls, or only the floor.
              sphere (bool): If True the lit area will be round instead of
                  square.
              cumulative (bool): If True the lit cells will accumulate instead
                  of being cleared before the computation.
  
          Returns:
              Iterator[Tuple[int, int]]: An iterator of (x, y) points of tiles
                  touched by the field-of-view.