diff options
author | SpitfireX <timm.weber@me.com> | 2015-08-12 01:59:48 +0200 |
---|---|---|
committer | SpitfireX <timm.weber@me.com> | 2015-08-12 01:59:48 +0200 |
commit | d0f7aa9e680df92e16a31c139bab76d4ee23b208 (patch) | |
tree | d9c4c3d199be62dfaa81077cece9dc50a35cfad2 | |
parent | 4f6736ac0d40b38b73ba5edbece6c9474dd352d1 (diff) |
A minor target locking fix.
Cell could stay locked onto an "edible" cell even after it has become
inedible.
-rw-r--r-- | strategy.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/strategy.py b/strategy.py index b98be3c..92e0ad2 100644 --- a/strategy.py +++ b/strategy.py @@ -63,9 +63,11 @@ class Strategy: # if however there's no enemy to avoid, chase food or jizz randomly around else: + def edible(cell): return (cell.is_food) or (cell.mass <= sorted(c.player.own_cells, key = lambda x: x.mass)[0].mass * 0.75) and not (cell.is_virus) + if self.target_cell != None: self.target = tuple(self.target_cell.pos) - if self.target_cell not in c.world.cells.values(): + if self.target_cell not in c.world.cells.values() or not edible(self.target_cell): self.target_cell = None self.has_target = False print("target_cell does not exist any more") @@ -74,8 +76,7 @@ class Strategy: print("Reached random destination") if not self.has_target: - def eatable(cell): return (cell.is_food) or (cell.mass <= sorted(c.player.own_cells, key = lambda x: x.mass)[0].mass * 0.75) and not (cell.is_virus) - food = list(filter(eatable, c.world.cells.values())) + food = list(filter(edible, c.world.cells.values())) def dist(cell): return math.sqrt((cell.pos[0]-c.player.center[0])**2 + (cell.pos[1]-c.player.center[1])**2) food = sorted(food, key = dist) |