Алгоритм на поле боя ИИ - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Ответ
 
Опции темы
#1
Старый 30.04.2014, 17:57
  #1
^
Attasik
 
Аватар для Attasik
📖
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
По умолчанию
Алгоритм на поле боя ИИ

Добрый день. Просмотрел форум, ответа (вопроса) не нашел.

По какому принципу нейтралы агрятся на поле боя? Есть ли какой то алгоритм у ИИ на кого ранее бежать (стрелять)?. Или тупо бежать в перед , а потом до кого добегают, того и бьют.

Если не корректно выразился, можете пинать.
Attasik вне форума
Ответить с цитированием
#2
Старый 02.05.2014, 19:43
  #2
^
dnaop-wr
 
Аватар для dnaop-wr
📖
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
По умолчанию
Re: Алгоритм на поле боя ИИ

Посмотри Памятку по тройке в моей подписи - там есть раздел о поведении ИИ на поле боя.
__________________
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
dnaop-wr вне форума
Ответить с цитированием
#3
Старый 02.05.2014, 20:57
  #3
^
Attasik
 
Аватар для Attasik
📖
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
Регистрация: 07.10.2007
Адрес: Украина. Хмельницкий.
Сообщения: 25
Отправить сообщение для  Attasik с помощью ICQ
По умолчанию
Re: Алгоритм на поле боя ИИ

dnaop-wrПосмотри Памятку по тройке в моей подписи - там есть раздел о поведении ИИ на поле боя.

Спасибо большое. В памятке получил полный ответ. Тему можно закрывать.
Attasik вне форума
Ответить с цитированием
#4
Старый 16.09.2014, 01:25
  #4
^
LazyBoy
📖
Регистрация: 06.11.2012
Сообщения: 9
Регистрация: 06.11.2012
Сообщения: 9
По умолчанию
Re: Алгоритм на поле боя ИИ

dnaop-wrПосмотри Памятку по тройке в моей подписи - там есть раздел о поведении ИИ на поле боя.
В своё время, почти год назад, занимался подобным вопросом, но только при 1 на 1 отрядах. За пример было взято изучение, как ведёт себя стек виверн в нычке при её захвате гнолями. При их скорости вивы ходят раньше и имеют два варианта поведения - вейт и полёт полностью вперёд. Зависит это от того, боятся они получить по голове от гнолей или нет. В итоге шло сравнение значений, полученных по формуле ниже и от их соотношения можно было понять тактику ИИ.
Собственно, сама формула выглядела примерно так(FV - Fight Value из crtraits.txt):
K_стека = HP_юнита*(урон_стека/FV_юнита), где
FV_юнита = sqrt(((FV_базовое+(атака_героя*FV_базовое)/20 )^2)*((FV_базовое+(защита_героя*FV_базовое)/20)^2))
Впрочем, это не совсем всё, но примерное объяснение в том, что стек просто хочет нанести больший урон не по HP, а по HP*FV, при этом он отдельно учитывает атаку и защиту героя, то есть, при прочих равных стек с атакой и защитой 5/5 и героем 0/0 для него не то же самое, что 3/3 и 2/2, хотя и урон при этом одинаковый. При этом, вивы всегда подлетали, если соотношение (К_стека_гнолей/К_стека_виверн)>=2. То есть, они уже хоронили себя заранее. Так же и в случае, если соотношение <=0.07. Они считают, что уже победа.
Примерно так я всё это могу по старым записям описать, но вполне возможно, что в чём-то ошибся, всё-таки уже почти год прошёл. Если интересно - могу показать примеры расчёта и всё такое, но это надо вспоминать.
На практике же это - атака змиев в ульях, атака стрелков в начале раунда по выдвинутым кентам, а не по эльфам, страх получить по зубам от стека вив и удар в единичку.
P.S. И да, кстати, урон_стека - это средний урон. То есть, стек воздушек будет считать свой урон за 5 при уроне 2-8. В своё время хотел записать видео с выводом формулы такой, но таааак мне лень.
LazyBoy вне форума
Ответить с цитированием
#5
Старый 17.09.2014, 10:43
  #5
^
dnaop-wr
 
Аватар для dnaop-wr
📖
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
По умолчанию
Re: Алгоритм на поле боя ИИ

Ну да, это математическое обоснование поведения ИИ на поле боя. Одна беда - далеко не всегда можно быстро учесть, оценить и просчитать влияние всех факторов. Поведение ИИ можно определить как наиболее вероятное, но не значит, что он поступит именно так - он может поступить нелогично с точки зрения игрока, но логично по заложенному в него алгоритму. К тому же возможно и определенный рандом действий ИИ присутствует в некоторых ситуациях. Поэтому кратко и однозначно описать алгоритм поведения ИИ на поле боя не представляется возможным (без вскрытия кода).
Впрочем, хочу отметить, что "безмозглая" нежить ведет себя как и должна - она идет к ближайшему врагу, в то время как живые юниты могут игнорировать подставку и идти напрямую к главным силам врага.
__________________
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
dnaop-wr вне форума
Ответить с цитированием
#6
Старый 17.09.2014, 20:17
  #6
^
LazyBoy
📖
Регистрация: 06.11.2012
Сообщения: 9
Регистрация: 06.11.2012
Сообщения: 9
По умолчанию
Re: Алгоритм на поле боя ИИ

dnaop-wrНу да, это математическое обоснование поведения ИИ на поле боя. Одна беда - далеко не всегда можно быстро учесть, оценить и просчитать влияние всех факторов. Поведение ИИ можно определить как наиболее вероятное, но не значит, что он поступит именно так - он может поступить нелогично с точки зрения игрока, но логично по заложенному в него алгоритму. К тому же возможно и определенный рандом действий ИИ присутствует в некоторых ситуациях. Поэтому кратко и однозначно описать алгоритм поведения ИИ на поле боя не представляется возможным (без вскрытия кода).
Впрочем, хочу отметить, что "безмозглая" нежить ведет себя как и должна - она идет к ближайшему врагу, в то время как живые юниты могут игнорировать подставку и идти напрямую к главным силам врага.
Не уверен, что есть разница между типом существа, так как во время тестов у меня и скелеты присутствовали. Вели себя в точности, как и другие. При этом, учитывая отсутствие морали, не могу и утверждать, что поведение идентично. А ещё насчет поведения - мой тест в улике 12 могу привести.
Герой - Аин 0/0 (СП и знание не учитываются ИИ при расчете ходов). Армия - только гнолики. Пробуем две расстановки гнолей:
422+6 единичек и 423+6 единичек. В первом случае змии бьют по единичкам. Во втором бросаются на большой стек. Разница в уронах тут мало значения имеет. Считая FV стеков можно заметить, что FV змиев = 250*60 = 15000, в свою очередь FV 428 гнолей = 70*428 = 29960. 429й гнолик выступает как раз тем граничным гноликом, который заставляет змиек понять, что им ничего не светит. Увеличивает FV гнолей настолько, что соотношение становится >=2. Итог - удар первых змиек по большому стеку. Далее же змийки видят 7 стеков, один из который ответку не даст, но при ударе по нему будет больше потерь HP*FV у врага. Поэтому все остальные пинают так же большой стек.
Таким вот образом добавляя одного гноля, можно увеличить потери, имея бОльшую армию.
Кстати, однажды у меня в игре всё пошло неправильно в склепе из-за большего количества гнолей. Оказалось, что убитый ящерами вампир унизил FV противника настолько, что соотношение вышло за рамки, от чего тряпки уже понеслись убивать большие стеки, а не гонялись за мухой. Как-то так было примерно, точно уже не вспомнить.
P.S. При 428 гнолях, если большой стек дефится в первом раунде, то вторым раундом получит по башке, даже если есть ещё 1 гнолика. Прибавленная единичка дефа, похоже, считается не от существа, а от героя, и в итоге стек получает гнолей с несколько бОльшим FV, что и заставляет ударить их.
LazyBoy вне форума
Ответить с цитированием
#7
Старый 18.09.2014, 11:34
  #7
^
dnaop-wr
 
Аватар для dnaop-wr
📖
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
Регистрация: 25.02.2011
Адрес: Kharkov
Сообщения: 1011
По умолчанию
Re: Алгоритм на поле боя ИИ

Я не тестировал поведение различных монстров на поле боя - просто заметил типичное поведение определенных видов монстров.
__________________
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
Техника в руках индейца мертва.

Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html

Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html

и HotA http://handbookhmm.ru/vyishla-obnovl...-iii-hota.html
dnaop-wr вне форума
Ответить с цитированием
#8
Старый 17.01.2020, 18:54
  #8
^
Tarmo
 
Аватар для Tarmo
📖
Регистрация: 29.05.2018
Адрес: Спб
Сообщения: 57
1448
Отправить сообщение для  Tarmo с помощью ICQ
Регистрация: 29.05.2018
Адрес: Спб
Сообщения: 57
1448
Отправить сообщение для  Tarmo с помощью ICQ
По умолчанию
Re: Алгоритм на поле боя ИИ

Формула определения Велью стека не верная не много или криво записана, вот точная формула

FV_юнита=floor((sqrt( Fight_Value+(Fight_Value*(Атака_Героя+ Бонус_Атаки )/20)*(Fight_Value+(Fight_Value*Защита_Героя+Бонусы_ Защиты/20) ))

И если выражение Fv_юнита* Сумма_Юнитов > 2*Fight_Value * N верно, то АИ будет бить по мейн стекам, если не верна, то будет избегать их и бить по единичкам.
floor - округление полученного числа в меньшую сторону.
Где бонусы это сумма бонусов за родную землю(+0 или +1) и бонус юниту от героя спеца по этому юниту в единицах. К примеру Галтран +1 на 1 уровне даст скелетам. Fight_Value велью юнита.

Данной формулой можно пользоваться при нападении на Черные Башни с черным или Золотым драконом.

Так же более общая формула для смешанной армии для определения в какой момент алгоритм Аи изменяется в бою

Σ(Ni*floor(sqrt(V(vi,ha,b1)*V(ai,hd,b1))) > 2*vj*Nj,
где V(vi,ha,b1)=FV_юнита.
Если формула не верна то АИ будет стараться закрывать стрелков, бить по тем кто меньше ответный удар нанесет, держаться на расстоянии от удара мейн стека, бить по существу с которого снят ответный удар, и который ранен. И вообще много разных коэффициентов, в общем урон будет по Велью_Юнита*Урон/ХП_Юнита
__________________
isq 742235848
isq 742235848
Tarmo вне форума
Ответить с цитированием
Ответ


Опции темы



Часовой пояс GMT +4, время: 16:52.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru