Esempio n. 1
0
 def estados(self, elem = None):
     estados = []
     ligacoes_ordenadas = []
     if elem == 'base':
         ligacoes_ordenadas = self.obter_ligacoes_ordenadas((19, 19))
     else:
         ligacoes_ordenadas = self.obter_ligacoes_ordenadas(self.estado_agente())
     for grupo_ligacoes in ligacoes_ordenadas:
         for ligacoes in grupo_ligacoes.values():
             centro_anterior = grupo_ligacoes.keys()[0]
             for centro in ligacoes:
                 area = self.area(centro)
                 estados_dentro_area = []
                 for (s, e) in self.elementos.items():
                     if areas_lig_tp.interior(s, area) and (e is None or e == elem):
                         estados_dentro_area.append(s)
                 criterio_seleccao = lambda estado: psa.util.dist(centro_anterior, estado)
                 estados_dentro_area = sorted(estados_dentro_area, key=criterio_seleccao)
                 estados.extend(estados_dentro_area)
     
     return estados  
Esempio n. 2
0
 def estado_abs(self, estado):
     for (centro, area) in areas_lig_tp.obter_areas().items():
         if areas_lig_tp.interior(estado, area):
             return centro
     
     return None
Esempio n. 3
0
 def area(self, estado):
     for (_, area) in areas_lig_tp.obter_areas().items():
         if areas_lig_tp.interior(estado, area):
             return area
         
     return None