def __init__(self, player_id, ship_id, x, y, hp, vel_x, vel_y, docking_status, planet, progress, cooldown): self.id = ship_id self.pos = Circle(x, y, constants.SHIP_RADIUS) self.owner = player_id self.health = hp self.docking_status = docking_status self.planet = planet if (docking_status is not Ship.DockingStatus.UNDOCKED) else None self._docking_progress = progress self._weapon_cooldown = cooldown self.velocity = Circle(vel_x, vel_y, 0)
def __init__(self, planet_id, x, y, hp, radius, docking_spots, current, remaining, owned, owner, docked_ships): self.id = planet_id self.pos = Circle(x, y, radius) self.num_docking_spots = docking_spots self.current_production = current self.remaining_resources = remaining self.health = hp self.owner = owner if bool(int(owned)) else None self._docked_ship_ids = docked_ships self._docked_ships = {}
def gravitational_center(self): """ Return the gravitational center of the squad :return: """ center = Circle(0,0,0) for member in self.__members: center += member.ship.pos # Now divide by the number of members center = center / float(self.nb_members()) logging.debug("gravitational_center: %s" % center) return center
# Import & build cython at runtime import pyximport pyximport.install() from bot.navigation import calculate_distance_between as distance2, Circle, calculate_angle_between as angle2, \ closest_point_to as closest_point_to2, navigate as navigate2, intersect_segment_circle as intersect_segment_circle2 from time import time from tests.distance_python import calculate_distance_between as distance1, calculate_angle_between as angle1, \ closest_point_to as closest_point_to1, navigate as navigate1, intersect_segment_circle as intersect_segment_circle1 p1 = Circle(60, 80, 3) p2 = Circle(180, 80, 2) circle = Circle(-2, 2, 1) nb = 1000000 """ Distance """ print("\n\nDistance:") start_time = time() for i in range(nb): d = distance1(p1, p2) end_time = time() duration = end_time - start_time print("distance: %s" % d) print("python duration : %s" % duration)
from bot.navigation import Circle, calculate_distance_between, segment_intersect #DEBUG:root:navigate(ship=Circle(123.80, 91.19, 0.50), target=Circle(122.45, 85.11, 0.00), game_map, speed=7.0, max_corrections=90, angular_spep=1.0, ignore_ships=False, ignore_planets=False, ignore_ghosts=False, assassin=False) line1 = (Circle(0, 0), Circle(10, 10)) line2 = (Circle(0, 10), Circle(10, 10)) print(segment_intersect(line1[0], line1[1], line2[0], line2[1])) exit() ship = Circle(123.80, 91.19, 0.50) print("ship:%s " % ship) target = Circle(122.45, 85.11, 0.00) print("target: %s" % target) new_target = ship + target print("new_target: %s" % new_target) new_target = ship - target print("new_target: %s" % new_target) new_target = ship * 2 print("new_target: %s" % new_target) new_target = ship * target print("new_target: %s" % new_target) distance = calculate_distance_between(ship, target) print("distance: %s" % distance)
def __init__(self, x, y, radius=0): self.pos = Circle(x, y, radius) self.health = None self.owner = None self.id = None
def __init__(self, x, y, radius, health, player, entity_id): self.pos = Circle(x, y, radius) self.health = health self.owner = player self.id = entity_id