コード例 #1
0
 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
コード例 #2
0
 def navigate(self, next_position):
     if grid.rect_in_bounds(next_position):
         self.move(next_position)