def game_loop(self): """The main game loop. This is where your hivemind code goes.""" # Setting up rate limiter. rate_limit = rate_limiter.RateLimiter(120) # Setting up data. field_info = FieldInfoPacket() self.game_interface.update_field_info_packet(field_info) packet = GameTickPacket() self.game_interface.update_live_data_packet(packet) data.setup(self, packet, field_info, self.running_indices) self.ball.predict = BallPrediction() # https://github.com/RLBot/RLBotPythonExample/wiki/Ball-Path-Prediction # MAIN LOOP: while True: # Updating the game packet from the game. self.game_interface.update_live_data_packet(packet) # Processing packet. data.process(self, packet) # Ball prediction. self.game_interface.update_ball_prediction(self.ball.predict) # Planning. brain.plan(self) # Rendering. self.render_debug(self.game_interface.renderer) # For each drone under the hivemind's control, do something. for drone in self.drones: # The controls are reset each frame. drone.ctrl = PlayerInput( ) # Basically the same as SimpleControllerState(). # Role execution. if drone.role is not None: drone.role.execute(self, drone) self.render_role(self.game_interface.renderer, drone) # Send the controls to the bots. self.game_interface.update_player_input( drone.ctrl, drone.index) # Rate limit sleep. rate_limit.acquire()
def game_loop(self): """The main game loop. This is where your hivemind code goes.""" # Setting up rate limiter. rate_limit = rate_limiter.RateLimiter(120) # Setting up data. field_info = FieldInfoPacket() self.game_interface.update_field_info_packet(field_info) packet = GameTickPacket() self.game_interface.update_live_data_packet(packet) data.setup(self, packet, field_info, self.running_indices) self.ball.predict = BallPrediction() # MAIN LOOP: while True: # Updating the game packet from the game. self.game_interface.update_live_data_packet(packet) # Processing packet. data.process(self, packet) # Ball prediction. self.game_interface.update_ball_prediction(self.ball.predict) brain.think(self) for drone in self.drones: drone.ctrl = PlayerInput() if drone.role is not None: drone.role.execute(self, drone) self.game_interface.update_player_input( drone.ctrl, drone.index) self.draw_debug() # Rate limit sleep. rate_limit.acquire()
def get_output(self, packet: GameTickPacket) -> SimpleControllerState: # Runs setup. if self.need_setup: field_info = self.get_field_info() data.setup(self, packet, field_info) self.need_setup = False # Preprocessing. data.process(self, packet) self.ctrl = SimpleControllerState() # Handle states. self.checkState() # Execute state. if not self.state.expired: self.state.execute(self) # Render. self.render(self.renderer) return self.ctrl
# return sequence_groups #### Load data # sequence_groups[i] contains data for class i # 4-dimensional data structure: (class, sequence_num, timestep, channel_num) # # PROVIDED DATASETS: # digits_session_1_dataset # digits_session_2_dataset # digits_session_3_dataset # digits_session_4_dataset sequence_groups = transform_data(data.join([ data.process(1, ['data/data/utkarsh1.txt'], sample_rate=1000), data.process(1, ['data/data/utkarsh2.txt'], sample_rate=1000), data.process(1, ['data/data/utkarsh3.txt'], sample_rate=1000), ])) # Split sequence_groups into training and validation data training_sequence_groups, validation_sequence_groups = data.split(sequence_groups, 1./6) # Manually selecting different training and validation datasets #training_sequence_groups = transform_data(data.digits_session_1_dataset()) #validation_sequence_groups = transform_data(data.digits_session_4_dataset()) # Pads or truncates each sequence to length length = 2400 # 300,600 training_sequence_groups = data.transform.pad_truncate(training_sequence_groups, length) validation_sequence_groups = data.transform.pad_truncate(validation_sequence_groups, length)
return sequence_groups #### Load data # sequence_groups[i] contains data for class i # 4-dimensional data structure: (class, sequence_num, timestep, channel_num) # # PROVIDED DATASETS: # digits_session_1_dataset # digits_session_2_dataset # digits_session_3_dataset # digits_session_4_dataset sequence_groups = transform_data( data.join([ data.process(1, ['data/data/181_silence1_50.txt'], sample_rate=1000), # data.process(1, ['data/data/182_silence2_50.txt'], sample_rate=1000), data.process(1, ['data/data/183_silence3_50.txt'], sample_rate=1000), # data.process(1, ['data/data/95_subvocal_silence_300_trials.txt'])[:,:50], # data.process(1, ['data/data/107_subvocal_silence_300_trials.txt'])[:,:50], ## data.process(1, ['data/data/119_subvocal_silence_300_trials.txt']), ]), sample_rate=1000) print np.shape(sequence_groups[0][0]) sequence_groups = data.transform.downsample(sequence_groups, 4) print np.shape(sequence_groups[0][0]) #plt.figure()
import numpy as np import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt import data #sequence_groups = data.silence_and_not_silence_dataset() sequence_groups1 = data.digits_session_2_dataset() sequence_groups2 = data.join([ data.process(1, ['data/test_data/testing_0_s2.txt']), data.process(1, ['data/test_data/testing_1_s2.txt']), data.process(1, ['data/test_data/testing_2_s2.txt']), data.process(1, ['data/test_data/testing_3_s2.txt']), data.process(1, ['data/test_data/testing_4_s2.txt']), data.process(1, ['data/test_data/testing_5_s2.txt']), data.process(1, ['data/test_data/testing_6_s2.txt']), data.process(1, ['data/test_data/testing_7_s2.txt']), data.process(1, ['data/test_data/testing_8_s2.txt']), data.process(1, ['data/test_data/testing_9_s2.txt']), ]) print np.shape(sequence_groups1) print np.shape(sequence_groups2) length = 300 sequence_groups1 = data.transform.default_transform(sequence_groups1) sequence_groups2 = data.transform.default_transform(sequence_groups2)
def run(): fetched = data.fetch() return data.process(fetched)