def start_game(return_args): global WINNER WINNER = 0 return_args['map'] = cli.get_map(return_args['map']) return_args['dir_p2'] = '/player/' + return_args['dir_p2'] return_args['dir_p1'] = '/player/' + return_args['dir_p1'] global game (game, dockers, sock_file) = cli.create_game(return_args) winner = None try: print("running game") winner = cli.run_game(game, dockers, return_args, sock_file) finally: cli.cleanup(dockers, return_args, sock_file) lock.release() print("release lock") if winner == 'player1': eel.trigger_end_game(1)() elif winner == ' player2': eel.trigger_end_game(2)() else: eel.trigger_end_game(0)()
def start_game(return_args): global WINNER WINNER = 0 return_args['map_name'] = return_args['map'] # check mountpoint for maps first c2 = os.path.abspath( os.path.join('/player/battlecode-maps', return_args['map'])) if 'NODOCKER' not in os.environ and os.path.exists(c2): return_args['map'] = cli.get_map(c2) else: c1 = os.path.abspath( os.path.join('..', 'battlecode-maps', return_args['map'])) if os.path.exists(c1): return_args['map'] = cli.get_map(c1) else: if 'testmap' not in return_args['map']: print("Can't find map {} in {}, falling back to test map..", return_args['map'], os.path.abspath(os.path.join('..', 'battlecode-maps'))) if 'NODOCKER' not in os.environ: print( '(Also looked in /player/battlecode-maps, which should be mounted to the battlecode-maps directory of your scaffold)' ) return_args['map'] = bc.GameMap.test_map() if 'NODOCKER' in os.environ: return_args['docker'] = False return_args['dir_p1'] = os.path.abspath( os.path.join('..', return_args['dir_p1'])) return_args['dir_p2'] = os.path.abspath( os.path.join('..', return_args['dir_p2'])) else: return_args['docker'] = True return_args['dir_p1'] = os.path.abspath( os.path.join('/player', return_args['dir_p1'])) return_args['dir_p2'] = os.path.abspath( os.path.join('/player', return_args['dir_p2'])) return_args['terminal_viewer'] = False return_args['extra_delay'] = 0 global game (game, dockers, sock_file) = cli.create_game(return_args) winner = None try: print("Running game...") winner = cli.run_game(game, dockers, return_args, sock_file) finally: cli.cleanup(dockers, return_args, sock_file) lock.release() if winner == 'player1': eel.trigger_end_game(1)() elif winner == ' player2': eel.trigger_end_game(2)() else: eel.trigger_end_game(0)() print("Ready to run next game.")
def run_game(map_path, player1dir, player2dir, replay_dir, docker, terminal_viewer, extra_delay, max_memory, initial_time, per_frame_time): args = {} args['dir_p2'] = player1dir args['dir_p1'] = player2dir args['docker'] = docker # TODO: Will cause name collisions if multiple instances run at the same time! args['replay_filename'] = os.path.join(replay_dir, "replay_" + str(len(os.listdir(replay_dir))) + replay_extension) args['player_memory'] = max_memory args['player_cpu'] = 20 args['time_pool'] = initial_time args['time_additional'] = per_frame_time args['use_viewer'] = False args['terminal_viewer'] = terminal_viewer args['extra_delay'] = extra_delay args['map'] = cli.get_map(map_path) if terminal_viewer and sys.platform == 'win32' and not CINIT: print('To get pretty output with -tv on windows, run `py -3 -m pip install colorama`') (game, sandboxes, sock_file) = cli.create_game(args) try: winner = cli.run_game(game, sandboxes, args, sock_file) finally: cli.cleanup(sandboxes, args, sock_file) print("Winner is player " + str(1 if winner == 'player1' else 2))
def start_game(return_args): global WINNER WINNER = 0 return_args['map'] = cli.get_map(os.path.abspath(os.path.join('..', 'battlecode-maps', return_args['map']))) if 'NODOCKER' in os.environ: return_args['docker'] = False return_args['dir_p1'] = os.path.abspath(os.path.join('..', return_args['dir_p1'])) return_args['dir_p2'] = os.path.abspath(os.path.join('..', return_args['dir_p2'])) else: return_args['docker'] = True return_args['dir_p1'] = os.path.abspath(os.path.join('/player', return_args['dir_p1'])) return_args['dir_p2'] = os.path.abspath(os.path.join('/player', return_args['dir_p2'])) global game (game, dockers, sock_file) = cli.create_game(return_args) winner = None try: print("Running game...") winner = cli.run_game(game, dockers, return_args, sock_file) finally: cli.cleanup(dockers, return_args, sock_file) lock.release() if winner == 'player1': eel.trigger_end_game(1)() elif winner == ' player2': eel.trigger_end_game(2)() else: eel.trigger_end_game(0)()
def run_game(map_path, player1dir, player2dir, replay_dir, docker=False): args = {} args['dir_p2'] = player1dir args['dir_p1'] = player2dir args['docker'] = docker # TODO: Will cause name collisions if multiple instances run at the same time! args['replay_filename'] = os.path.join( replay_dir, "replay_" + str(len(os.listdir(replay_dir))) + replay_extension) args['player_memory'] = 256 args['player_cpu'] = 20 # TODO: Isn't this supposed to be 10000 or something? I got these values from the web client, but they seem too low args['time_pool'] = 1000 args['time_additional'] = 50 args['use_viewer'] = False args['map'] = cli.get_map(map_path) (game, sandboxes, sock_file) = cli.create_game(args) try: print("running game") winner = cli.run_game(game, sandboxes, args, sock_file) finally: cli.cleanup(sandboxes, args, sock_file) print("Winner is player: " + str(1 if winner == 'player1' else 2))
def run_game(map_path, player1dir, player2dir, replay_dir, docker, terminal_viewer, extra_delay, max_memory, initial_time, per_frame_time, proxy_test, working_dir): args = {} args['dir_p1'] = player1dir args['dir_p2'] = player2dir args['docker'] = docker # TODO: Will cause name collisions if multiple instances run at the same time! args['replay_filename'] = os.path.join( replay_dir, "replay_" + str(len(os.listdir(replay_dir))) + replay_extension) # Make sure filename is used. Important if multiple instances are running at the same time f = open(args['replay_filename'], "w") f.write("") f.close() args['player_memory'] = max_memory args['player_cpu'] = 20 args['time_pool'] = initial_time args['time_additional'] = per_frame_time args['use_viewer'] = False args['terminal_viewer'] = terminal_viewer args['extra_delay'] = extra_delay args['map_name'] = map_path args['map'] = cli.get_map(map_path) args['working_dir'] = working_dir if terminal_viewer and sys.platform == 'win32' and not CINIT: print( 'To get pretty output with -tv on windows, run `py -3 -m pip install colorama`' ) (game, sandboxes, sock_file) = cli.create_game(args) if proxy_test: import proxyuploader up = proxyuploader.ProxyUploader() up.game_id = 12312 up.blue_id = 100 up.blue_id = 1000 up.game = game try: winner = cli.run_game(game, sandboxes, args, sock_file) finally: cli.cleanup(sandboxes, args, sock_file) if proxy_test: up.done = True print("Winner is player " + str(1 if winner == 'player1' else 2))
def run_game(map_path, player1dir, player2dir, replay_dir, docker=False, terminal_viewer=False, extra_delay=0): args = {} args['dir_p2'] = player1dir args['dir_p1'] = player2dir args['docker'] = docker # TODO: Will cause name collisions if multiple instances run at the same time! args['replay_filename'] = os.path.join( replay_dir, "replay_" + str(len(os.listdir(replay_dir))) + replay_extension) args['player_memory'] = 256 args['player_cpu'] = 20 # TODO: Isn't this supposed to be 10000 or something? I got these values from the web client, but they seem too low args['time_pool'] = 1000 args['time_additional'] = 50 args['use_viewer'] = False args['terminal_viewer'] = terminal_viewer args['extra_delay'] = extra_delay args['map'] = cli.get_map(map_path) if terminal_viewer and sys.platform == 'win32' and not CINIT: print( 'To get pretty output with -tv on windows, run `py -3 -m pip install colorama`' ) (game, sandboxes, sock_file) = cli.create_game(args) try: print("running game") winner = cli.run_game(game, sandboxes, args, sock_file) finally: cli.cleanup(sandboxes, args, sock_file) print("Winner is player: " + str(1 if winner == 'player1' else 2))
def run_game(map_path, player1dir, player2dir, replay_dir, docker=False): args = {} args['dir_p2'] = player1dir args['dir_p1'] = player2dir args['docker'] = docker # TODO: Will cause name collisions if multiple instances run at the same time! args['replay_filename'] = os.path.join(replay_dir, "replay_" + str(len(os.listdir(replay_dir))) + replay_extension) args['player_memory'] = 256 args['player_cpu'] = 20 # TODO: Isn't this supposed to be 10000 or something? I got these values from the web client, but they seem too low args['time_pool'] = 1000 args['time_additional'] = 50 args['use_viewer'] = False args['map'] = cli.get_map(map_path) (game, sandboxes, sock_file) = cli.create_game(args) try: print("running game") winner = cli.run_game(game, sandboxes, args, sock_file) finally: cli.cleanup(sandboxes, args, sock_file) print("Winner is player: " + str(1 if winner == 'player1' else 2))