Esempio n. 1
0
	def parse_initial(cls, tokens): 
		import mars_math
		x = {} 
		for i in ['dx', 'dy', 'time_limit', 'min_sensor', 'max_sensor',
				'max_speed', 'max_turn', 'max_hard_turn']:
			x[i] = cls.parse_float(tokens)  
		x['max_turn'] = mars_math.to_radians(x['max_turn'])
		x['max_hard_turn'] = mars_math.to_radians(x['max_hard_turn'])
		return x
Esempio n. 2
0
 def setInitial(self, initial):
     """This is called with initial data"""
     self.log.debug('received initial data: %r', initial)
     self.map_size = initial['dx'], initial['dy']
     self.time_start = None
     self.time_limit = initial['time_limit']
     self.min_sensor = initial['min_sensor']
     self.max_sensor = initial['max_sensor']
     self.max_speed = initial['max_speed']
     self.max_turn = mars_math.to_radians(initial['max_turn'])
     self.max_hard_turn = mars_math.to_radians(initial['max_hard_turn'])
     self.initialized = True
Esempio n. 3
0
    def setTelemetry(self, telemetry):
        """This is called when telemetry is updated"""
        self.telemetry_log.debug('set: %r', telemetry) 
        if self.acceleration != telemetry['acceleration']:
            self.acceleration = telemetry['acceleration']
            self.telemetry_log.info('new acceleration: %r', self.acceleration)

        self.turning = telemetry['turning']
        self.position = mars_math.Point(*telemetry['position'])
        self.velocity = telemetry['velocity']
        self.direction = telemetry['direction']
        for object in telemetry['objects']:
            if 'position' in object:
                object['position'] = mars_math.Point(*object['position'])
            self.noticeObject(object)
        self.direction = mars_math.Angle(mars_math.to_radians(telemetry['direction']))
        self.vector = mars_math.Vector(self.position, self.velocity, self.direction)

        self.recordCommunicationsData()

        # XXX: you can try out different strategies by altering this
        if self.secondsBehind() < 0.2:
            print "SECONDS BEHIND", self.secondsBehind()
            strategies.current_strategy(self)
        else:
            print "SKIPPING STEERING THIS UPDATE"
Esempio n. 4
0
def make_vector(direction_in_degrees, x_pos, y_pos):
    rads = mars_math.to_radians(float(direction_in_degrees))
    return mars_math.Vector(mars_math.Point(x_pos, y_pos), 1, mars_math.Angle(rads))