def navigate(self, next_position): bounds = grid.BOUNDS if self.bored: self.maybe_explode() if grid.rect_in_bounds(next_position): self.move(next_position) # don't go the wrong way for long if self.going_the_wrong_way() and random.random() < 0.1: self.go_the_right_way() return if (next_position.right >= bounds.right or grid.in_water(next_position)): self.bored = True self.orient(6) # go straight back return if next_position.left <= 0: self.move(next_position) if self.bored: if next_position.right < 0: self.finished = True else: self.go_the_right_way() return if next_position.top < bounds.top: self.orient(5 if self.bored else 3) self.move(next_position) return if next_position.bottom >= bounds.bottom: self.orient(7 if self.bored else 1) self.move(next_position) return
def navigate(self, next_position): if grid.rect_in_bounds(next_position): self.move(next_position)