示例#1
0
def warrior(game_map, game_params, game_teams):
    global start
    global ticks

    while True:
        state = State(input(), game_teams, game_params)

        my_buildings = state.my_buildings()
        my_squads = state.my_squads()
        # сортируем по остаточному пути
        my_squads.sort(key=lambda c: c.way.left, reverse=False)

        enemy_buildings = state.enemy_buildings()
        enemy_squads = state.enemy_squads()

        neutral_buildings = state.neutral_buildings()

        forges_buildings = state.forges_buildings()

        if state.ability_ready(AbilityType.Area_damage):
            cast_aoe(enemy_squads, enemy_buildings, game_map, game_teams)
        move_units(enemy_buildings, my_buildings, enemy_squads, game_map,
                   game_teams)
        ticks += 1
        print("end")
示例#2
0
        my_buildings = state.my_buildings()
        my_squads = state.my_squads()
        # сортируем по остаточному пути
        my_squads.sort(key=lambda c: c.way.left, reverse=False)

        enemy_buildings = state.enemy_buildings()
        enemy_squads = state.enemy_squads()

        neutral_buildings = state.neutral_buildings()

        forges_buildings = state.forges_buildings()
        """ Играем за мага """
        if game_teams.my_her.hero_type == HeroType.Mag:
            # проверяем доступность абилки Обмен башнями
            if state.ability_ready(AbilityType.Build_exchange):
                # если враг применил абилку обмен башнями
                build_exchange = state.enemy_active_abilities(
                    AbilityType.Build_exchange)
                if len(build_exchange) > 0:
                    print(
                        game_teams.my_her.exchange(enemy_buildings[0].id,
                                                   my_buildings[0].id))
                else:
                    if my_buildings[0].creeps_count < 10:
                        print(
                            game_teams.my_her.exchange(enemy_buildings[0].id,
                                                       my_buildings[0].id))

            # проверяем доступность абилки Чума
            if state.ability_ready(AbilityType.Plague):
示例#3
0
        my_buildings = state.my_buildings()
        my_squads = state.my_squads()
        # сортируем по остаточному пути
        my_squads.sort(key=lambda c: c.way.left, reverse=False)

        enemy_buildings = state.enemy_buildings()
        enemy_squads = state.enemy_squads()

        neutral_buildings = state.neutral_buildings()

        forges_buildings = state.forges_buildings()
        """ Играем за рунного кузнеца """
        if game_teams.my_her.hero_type == HeroType.BlackSmith:
            # Проверяем доступность абилки Щит
            if state.ability_ready(AbilityType.Armor):
                print(game_teams.my_her.armor(my_buildings[0].id))

            # Проверяем доступность абилки Разрушение
            if len(enemy_squads) > 4:
                if state.ability_ready(AbilityType.Area_damage):
                    location = game_map.get_squad_center_position(
                        enemy_squads[2])
                    print(game_teams.my_her.area_damage(location))

            # Upgrade башни
            if my_buildings[0].level.id < len(game_params.tower_levels):
                # Если хватает стоимости на upgrade
                update_coast = game_params.get_tower_level(
                    my_buildings[0].level.id + 1).update_coast
                if update_coast < my_buildings[0].creeps_count: