def silly_inner_generator(self): while True: direction = random.choice(list(SK.STEPS.keys())) if direction == CM.TELEPORT: continue np = (self.p[0] + SK.STEPS[direction][0], self.p[1] + SK.STEPS[direction][1]) if cell_is_correct(np): yield CM.pack_bot_step(self.run_number, self.time_frame, CM.CAT, direction)
def run(self): while True: self.run_number += 1 print('Game Map, start, run_number=' + str(self.run_number)) self.cat = Cat(self.run_number, self.game_map) self.send_update_to_server_vis() s = sched.scheduler(time.perf_counter, time.sleep) for repeat in range(GAME_CONF.REPEATS_NUMBER): s.enter(TimesConf.BORDER_DELAY + repeat * TimesConf.BETWEEN_REPEATS_DT, 1, self.send_init) s.enter(TimesConf.TOTAL, 0, lambda *args: None) s.run() for t in range(GAME_CONF.STEPS_NUMBER): logger.info('Cat, run_number=' + str(self.run_number) + ', time_frame=' + str( self.cat.time_frame) + ', p=' + str(self.cat.p)) self.send_update_to_server_vis() s = sched.scheduler(time.perf_counter, time.sleep) s.enter(0, 2, self.cat.one_step) for i in range(GAME_CONF.FIELD_SIZE): for j in range(GAME_CONF.FIELD_SIZE): to_cat_direction = self.generate_step(t, i, j) msg = CM.pack_bot_step(self.run_number, self.cat.time_frame, CM.CAT, to_cat_direction) for repeat in range(GAME_CONF.REPEATS_NUMBER): s.enter(TimesConf.BORDER_DELAY + repeat * TimesConf.BETWEEN_REPEATS_DT, 1, self.send_step, argument=(msg, i, j)) s.enter(TimesConf.TOTAL, 0, lambda *args: None) s.run()
def silly_inner_hunter(self): return CM.pack_bot_step(self.game_run.run_number, self.time_frame, CM.HUNTER, self.cat_direction)