예제 #1
0
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)

    try:
        print("running game")
        winner = cli.run_game(game, dockers, return_args, sock_file)
    finally:
        cli.cleanup(dockers, return_args, sock_file)
    lock.release()

    eel.trigger_end_game(1 if winner == 'player1' else 2)()
예제 #2
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.")
예제 #3
0
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)()