Добавлен magistor8
Подскажите люди добрые как мне посчитать количество юнитов определенного типа в группе занесенной в переменную?
Принятый ответ
magistor8, получится цензура цензура
да и всеравно придётся перебирать всех юнитов в группе чтобы узнать их количество
только вместо одной строки с ифом у тебя будет вложенный цикл с проверкой юнитов
так что делай как сказали ssbbssc и l_Avenger_l (они походу не въехали что предлагают один и тот же вариант)
если надо знать сколько юнитов каждого (а не 1 конкретного) типа в группе то их вариант можно немного улучшить
вместо обычной целой переменной юзай массив целых
и в цикле делай проверку что если юнит принадлежит первому типу то массив[1]++ (увеличить значение на единицу)
если второму то массив[2]++
и т.д.
в результате за 1 пробег цикла ты получишь массив который будет содержать количество юнитов каждого типа
а если ты хочешь ещё оптимальнее то вместо проверки "если юнит принадлежит n-ному типу" юзай бд на основе хеш таблицы которая по равкоду юнита будет хранить его индекс в массиве
либо любой другой способ преобразовать равкод юнита в целое число которое >=0 и <8192
да и всеравно придётся перебирать всех юнитов в группе чтобы узнать их количество
только вместо одной строки с ифом у тебя будет вложенный цикл с проверкой юнитов
так что делай как сказали ssbbssc и l_Avenger_l (они походу не въехали что предлагают один и тот же вариант)
если надо знать сколько юнитов каждого (а не 1 конкретного) типа в группе то их вариант можно немного улучшить
вместо обычной целой переменной юзай массив целых
и в цикле делай проверку что если юнит принадлежит первому типу то массив[1]++ (увеличить значение на единицу)
если второму то массив[2]++
и т.д.
в результате за 1 пробег цикла ты получишь массив который будет содержать количество юнитов каждого типа
а если ты хочешь ещё оптимальнее то вместо проверки "если юнит принадлежит n-ному типу" юзай бд на основе хеш таблицы которая по равкоду юнита будет хранить его индекс в массиве
либо любой другой способ преобразовать равкод юнита в целое число которое >=0 и <8192
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
да и всеравно придётся перебирать всех юнитов в группе чтобы узнать их количество
только вместо одной строки с ифом у тебя будет вложенный цикл с проверкой юнитов
так что делай как сказали ssbbssc и l_Avenger_l (они походу не въехали что предлагают один и тот же вариант)
если надо знать сколько юнитов каждого (а не 1 конкретного) типа в группе то их вариант можно немного улучшить
вместо обычной целой переменной юзай массив целых
и в цикле делай проверку что если юнит принадлежит первому типу то массив[1]++ (увеличить значение на единицу)
если второму то массив[2]++
и т.д.
в результате за 1 пробег цикла ты получишь массив который будет содержать количество юнитов каждого типа
а если ты хочешь ещё оптимальнее то вместо проверки "если юнит принадлежит n-ному типу" юзай бд на основе хеш таблицы которая по равкоду юнита будет хранить его индекс в массиве
либо любой другой способ преобразовать равкод юнита в целое число которое >=0 и <8192
Количество юнитов в группе юнитов(Юниты принадлежащие(Владелец(Выбранный юнит)) сопоставительного ((((Совпадающий юнит) в {нужная нам переменная}) и ((Тип юнита(Совпадающий юнит)) равно {нужный нам тип юнита})).
Узнаем количество юнитов определенного типа в определенной группе(проверенно).
бжшки раскрой просто