PheromoneFlavour.py 1.0KB

1234567891011121314151617181920212223242526272829303132
  1. from intelligine.core.exceptions import NoTypeInPheromone, NoCategoryInPheromone
  2. from intelligine.simulation.pheromone.Pheromone import Pheromone
  3. class PheromoneFlavour():
  4. def __init__(self, point_data):
  5. self._point_data = point_data
  6. def get_pheromone(self, category, type):
  7. types = self.get_types(category)
  8. if type not in types:
  9. raise NoTypeInPheromone()
  10. distance, intensity = types[type]
  11. return Pheromone(category, type, distance, intensity)
  12. def get_types(self, category):
  13. if category not in self._point_data:
  14. raise NoCategoryInPheromone()
  15. return self._point_data[category]
  16. def update_pheromone(self, pheromone):
  17. category = pheromone.get_category()
  18. type = pheromone.get_type()
  19. if category not in self._point_data:
  20. self._point_data[category] = {}
  21. self._point_data[category][type] = (pheromone.get_distance(), pheromone.get_intensity())
  22. def get_raw_data(self):
  23. return self._point_data