sensing_scouter.py 1.0 KB

1234567891011121314151617181920212223242526272829
  1. import random
  2. from board import Board
  3. from blob.dumb_scouter import DumbScouter
  4. from blob.actions import Actions
  5. class SensingScouter(DumbScouter):
  6. def move(self):
  7. available_dirs = []
  8. min_pheromone = Board.MAX_BLOB + 1
  9. dirs = Actions.ACTIONS_SIMPLE
  10. for new_dir in dirs:
  11. if 0 <= self.x + new_dir[0] < self.board.width and 0 <= self.y + new_dir[1] < self.board.height:
  12. new_pheromone = self.board.get_blob(self.x + new_dir[0], self.y + new_dir[1])
  13. if new_pheromone is not None:
  14. if new_pheromone < min_pheromone:
  15. available_dirs = [new_dir]
  16. min_pheromone = new_pheromone
  17. elif new_pheromone == min_pheromone:
  18. available_dirs.append(new_dir)
  19. if len(available_dirs) != 0:
  20. direction = available_dirs[random.randrange(len(available_dirs))]
  21. self.x += direction[0]
  22. self.y += direction[1]