Подскажите люди добрые как мне посчитать количество юнитов определенного типа в группе занесенной в переменную?

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