def handle(self, dmap, a): min_d = 2 center_blocked = ac.central_dist(dmap) == min_d next_left = ac.column_min_dist(dmap, 0) > min_d next_right = ac.column_min_dist(dmap, -1) > min_d # save visual data self.map.see_offset((0, 1), blocked=center_blocked) if next_left: self.map.see_offset((-1, 1)) if next_right: self.map.see_offset((1, 1)) self.map.print_current() print self.map.get_view((-1, 1)), self.map.get_view((1, 1)), next_left, next_right, self.map.yaw # turn to the next unobserved point angle = 0 current_offset = (0, 1) for i in range(4): current_offset = mp.MapTracker.compensate_yaw(current_offset, 90) angle += 90 if self.map.get_view(current_offset) == mp.MapTracker.Unknown: self.move = ac.turn_left(ac.empty(), arg=angle) return self.finished = True self.move = ac.empty()
def handle(self, dmap, a): if self.delay_loop > 0: return if self.state == 0: pass elif self.state == 1: dist = int(ac.central_dist(dmap)) self.width = dist print('DIST:', dist) elif self.state == 2: print('second d', ac.central_dist(dmap)) self.width += ac.central_dist(dmap) self.position = ac.central_dist(dmap) else: self.direction = self.direction if self.position != self.width and self.position != 0 else not self.direction if self.state < 3: self.state += 1
def handle(self, dmap, a): if not self.direction_selected: dist = ac.central_dist(dmap) if dist < self.min_dist: self.min_dist = dist self.min_angle = self.directions_checked else: self.finished = self.turn >= TOTAL if self.turn >= TOTAL: exit(0)
def handle(self, dmap, a): if not self.direction_selected: dist = ac.central_dist(dmap) if dist < self.min_dist: self.min_dist = dist self.min_angle = self.angle