Beispiel #1
0
def on_press(event):
    if (event.dblclick):
        print("Double click registered")
        best = find_best()
        inter = find_intermediate(geo.Point(best[0], best[1]))
        plt.plot(best[0], best[1], '*')
        plt.plot(inter[0], inter[1], '*')
Beispiel #2
0
    def cost_function(self, xpoint, ypoint):
        score = 0
        if main_field.in_defense_area(xpoint, ypoint) or not world.can_reach(geo.Point(xpoint, ypoint),
                                                                             geo.Point(field.rightx, 0)):
            score = 300
            return [score]

        bot, dist = world.their_closest_robot_to_point(xpoint, ypoint)
        score += -100 * dist

        ourbot, ourdist = world.our_closest_robot_to_point(xpoint, ypoint)
        score += 100 * ourdist

        shoot_succes_reward = bot.shoot_from_pos(xpoint, ypoint)
        score += -shoot_succes_reward * 2
        score += field.distance_to_enemy_goal(field, xpoint, ypoint)
        return [score]
Beispiel #3
0
 def __init__(self, x, y, vel, circle):
     self.x = x
     self.y = y
     self.vel = vel
     self.circle = circle
     self.press = None
     self.robot_field = field()
     self.center = geo.Point(self.x, self.y)
     self.intercept_radius = 0.5
     self.intercept_circle = geo.Circle(self.center, self.intercept_radius)
Beispiel #4
0
    def on_release(self, event):
        'on release we reset the press data'

        self.x = self.circle.center[0]
        self.y = self.circle.center[1]
        self.center = geo.Point(self.x, self.y)
        self.intercept_radius = 0.5
        self.intercept_circle = geo.Circle(self.center, self.intercept_radius)

        self.press = None
        self.circle.figure.canvas.draw()
Beispiel #5
0
    def cost_function(self, xpoint, ypoint):
        score = 0

        candidate_point = geo.Point(xpoint, ypoint)
        intermediate_can_reach_desired = world.can_reach(candidate_point, self.desired_point)
        start_can_reach_intermediate = world.can_reach(self.start_point, candidate_point)
        if main_field.in_defense_area(xpoint, ypoint) or not start_can_reach_intermediate or not intermediate_can_reach_desired:
            score = 300
            return [score]

        bot, dist = world.their_closest_robot_to_point(xpoint, ypoint)
        score += -100 * dist

        ourbot, ourdist = world.our_closest_robot_to_point(xpoint, ypoint)
        score += 100 * ourdist

        shoot_succes_reward = bot.shoot_from_pos(xpoint, ypoint)
        score += -shoot_succes_reward * 2
        score += field.distance_to_enemy_goal(field, xpoint, ypoint)
        return [score]
Beispiel #6
0
 def __init__(self, name, desired_point):
     self.name = name
     self.dim = 2
     self.desired_point = desired_point
     self.start_point = geo.Point(world.ball.x, world.ball.y)