Example #1
0
def init_games(num_games,
               ai1_option,
               ai2_option,
               game_option,
               *,
               act_name="act"):
    # print('ai1 option:')
    # print(ai1_option.info())
    # print('ai2 option:')
    # print(ai2_option.info())
    # print('game option:')
    # print(game_option.info())

    batchsize = min(32, max(num_games // 2, 1))
    act1_dc = tube.DataChannel(act_name + "1", batchsize, 1)
    act2_dc = tube.DataChannel(act_name + "2", batchsize, 1)
    context = tube.Context()
    idx2utype = [
        minirts.UnitType.SPEARMAN,
        minirts.UnitType.SWORDMAN,
        minirts.UnitType.CAVALRY,
        minirts.UnitType.DRAGON,
        minirts.UnitType.ARCHER,
    ]

    if game_option.seed == 777:
        print("Using random seeds...")

    for i in range(num_games):
        g_option = minirts.RTSGameOption(game_option)
        if game_option.seed == 777:
            print("Using random seeds...")
            seed = random.randint(1, 123456)
        else:
            seed = game_option.seed

        g_option.seed = seed + i
        g_option.game_id = str(i)
        if game_option.save_replay_prefix:
            g_option.save_replay_prefix = (game_option.save_replay_prefix +
                                           "_0_" + str(i))

        g = minirts.RTSGame(g_option)
        bot1 = minirts.CheatExecutorAI(ai1_option, 0, None, act1_dc)
        bot2 = minirts.CheatExecutorAI(ai2_option, 0, None, act2_dc)
        # utype = idx2utype[i % len(idx2utype)]
        # bot2 = minirts.MediumAI(ai2_option, 0, None, utype, False)

        g.add_bot(bot1)
        g.add_bot(bot2)
        context.push_env_thread(g)

    return context, act1_dc, act2_dc
Example #2
0
def create_game(act1_dc, ai1_option, game_option, i, seed):
    g_option = minirts.RTSGameOption(game_option)
    g_option.seed = seed + i
    g_option.game_id = str(i)
    if game_option.save_replay_prefix:
        g_option.save_replay_prefix = game_option.save_replay_prefix + "_0_" + str(
            i)
    g = minirts.RTSGame(g_option)
    bot1 = minirts.CheatExecutorAI(ai1_option, 0, None, act1_dc)
    return bot1, g
Example #3
0
def create_game(num_games,
                ai1_option,
                ai2_option,
                game_option,
                *,
                act_name='act'):
    print('ai1 option:')
    print(ai1_option.info())
    print('ai2 option:')
    print(ai2_option.info())
    print('game option:')
    print(game_option.info())

    batchsize = min(32, max(num_games // 2, 1))
    act1_dc = tube.DataChannel(act_name + '1', batchsize, 1)
    act2_dc = tube.DataChannel(act_name + '2', batchsize, 1)
    context = tube.Context()
    idx2utype = [
        minirts.UnitType.SPEARMAN,
        minirts.UnitType.SWORDMAN,
        minirts.UnitType.CAVALRY,
        minirts.UnitType.DRAGON,
        minirts.UnitType.ARCHER,
    ]

    for i in range(num_games):
        g_option = minirts.RTSGameOption(game_option)
        g_option.seed = game_option.seed + i
        if game_option.save_replay_prefix:
            g_option.save_replay_prefix = game_option.save_replay_prefix + str(
                i)

        g = minirts.RTSGame(g_option)
        bot1 = minirts.CheatExecutorAI(ai1_option, 0, None, act1_dc)
        bot2 = minirts.CheatExecutorAI(ai2_option, 0, None, act2_dc)
        # utype = idx2utype[i % len(idx2utype)]
        # bot2 = minirts.MediumAI(ai2_option, 0, None, utype, False)
        g.add_bot(bot1)
        g.add_bot(bot2)
        context.push_env_thread(g)

    return context, act1_dc, act2_dc
Example #4
0
def create_game(ai1_option, ai2_option, game_option, *, act_name='act'):
    print('ai1 option:')
    print(ai1_option.info())
    print('ai2 option:')
    print(ai2_option.info())
    print('game option:')
    print(game_option.info())

    act_dc = tube.DataChannel(act_name, 1, -1)
    context = tube.Context()
    g = minirts.RTSGame(game_option)
    bot1 = minirts.CheatExecutorAI(ai1_option, 0, None, act_dc)
    bot2 = minirts.MediumAI(ai2_option, 0, None, minirts.UnitType.INVALID_UNITTYPE, False)
    g.add_bot(bot1)
    g.add_bot(bot2)
    g.add_default_spectator()

    context.push_env_thread(g)
    return context, act_dc
Example #5
0
# Copyright (c) Facebook, Inc. and its affiliates.
Example #6
0
def init_mt_games(num_sp,
                  num_rb,
                  args,
                  ai1_option,
                  ai2_option,
                  game_option,
                  *,
                  act_name="act",
                  viz=False):
    # print('ai1 option:')
    # print(ai1_option.info())
    # print('ai2 option:')
    # print(ai2_option.info())
    # print('game option:')
    # print(game_option.info())

    if game_option.seed == 777:
        print("Using random seeds...")

    total_games = num_sp + num_rb
    batchsize = min(32, max(total_games // 2, 1))

    act1_dc = tube.DataChannel(act_name + "1", batchsize, 1)
    act2_dc = tube.DataChannel(act_name + "2", batchsize, 1)
    context = tube.Context()
    idx2utype = [
        minirts.UnitType.SPEARMAN,
        minirts.UnitType.SWORDMAN,
        minirts.UnitType.CAVALRY,
        minirts.UnitType.DRAGON,
        minirts.UnitType.ARCHER,
    ]

    game_id = 0
    if num_rb > 0:
        rnd_num = random.randint(0, num_rb - 1)
        for i in range(num_rb):
            if game_option.seed == 777:
                seed = random.randint(1, 123456)
            else:
                seed = game_option.seed

            bot1, g = create_game(act1_dc, ai1_option, game_option, game_id,
                                  seed)

            rule_type = i % len(idx2utype)
            utype = idx2utype[rule_type]
            bot2 = minirts.MediumAI(ai2_option, 0, None, utype,
                                    1)  # Utype + tower

            g.add_bot(bot1)
            g.add_bot(bot2)

            if viz and i == rnd_num:
                g.add_default_spectator()

            context.push_env_thread(g)
            game_id += 1

    for i in range(num_sp):
        if game_option.seed == 777:
            seed = random.randint(1, 123456)
        else:
            seed = game_option.seed

        bot1, g = create_game(act1_dc, ai1_option, game_option, game_id, seed)
        bot2 = minirts.CheatExecutorAI(ai2_option, 0, None, act2_dc)

        g.add_bot(bot1)
        g.add_bot(bot2)
        context.push_env_thread(g)
        game_id += 1

    return context, act1_dc, act2_dc
Example #7
0
# Copyright (c) Facebook, Inc. and its affiliates.
Example #8
0
# Copyright (c) Facebook, Inc. and its affiliates.
Example #9
0
# Copyright (c) Facebook, Inc. and its affiliates.