Автор | атака берсерком ближайшего врага |
для Жеррри2:
Просто это непонятно графически. У нас же поле дискретное, не по миллиметрам рассчитывается.
Так-то ясно, что по этой формуле мы хотим просуммировать квадраты разниц координат и извлечь из этой суммы корень, и получить диагональ.
Но берс-то бежит вперёд (то есть по 5 "наименьшим клеткам" в размере 1, а не диагональным изначально, но потом резко сворачивает к псу. И вот когда он резко сворачивает - здесь 3 клетки диагональных *1,41... -> в итоге путь до собаки 5 клеток + примерно 4,24. Да ну даже если и округлить вниз - получится 9, то есть как и по прямой до мага. То есть по параллелограмму берсу бежать удобнее и короче?
Я сейчас не про координаты, а как это выглядит на глаз на поле боя.
Может я тупой просто, но не могу это понять именно наглядно, а не просто арифметически. |
для Silco:
Берс стоит на клетке (8:10)
Ближайшая клетка, с которой он может ударить рога (9:12)
Расстояние до клетки sqrt( (9-8)^2 + (12-10)^2 ) = sqrt(5);
Ближайшая клетка, скоторой может ударить нимфу (10:10)
Расстояние до клетки sqrt( (8-10)^2 + (10-10)^2 ) = sqrt(4) = 2;
2 < sqrt(5), поэтому бьет нимфу |
для Жеррри2:
Так я изначально про то и говорил)
Я видел бой где берс побежал на всю дальность хода вместо того, чтобы ударить стек, который относительно рядом стоял, потому что расстояние до него по прямой было две клетки, и он побежал в обход на 6
_даже если дорогу перегораживают_ |
для Silco:
Так что видимо тут просто баг
Я тогда не понял, а в чем тут тогда баг? |
для Жеррри2:
То есть, я правильно понимаю, что учитывается вовсе не кратчайший путь, как указано в описании существа (оно ведь не летает и не телепортируется, а именно бежит), а именно вот эта невидимая, мнимая диагональ.
И берс, как в том бой от Silco - тупо не учитывает сам путь, а бежит по этой виртуальной диагонали? |
для нагибатор888:
Сразу отвечу, я точно не знаю. omni знает намного лучше. Я опираюсь на собственный (небольшой) опыт.
Мне кажется, что выбор точки удара под берсом выполняется следующим образом.
Берется местоположение берсерка (x,y) и все точки, до которых он доходит и может ударить врага (т.е. на этих координатах нет своих и чужих войск, камней и тп). И из этих точек выбирается точка для удара (xx, yy), для которой
sqrt((x-xx)^2+(y-yy)^2) минимально |
Кстати, в тему придумал интересный эксперимент. Что будет, если до такой ближайшей клетки без руны энергии берсерк не добегает. Например, если в бою с нимфами была бы занята клетка (10:11). То, использовав руну, берсерк туда побежит (ну если он с руной туда дотянется) или рога ударит? |
[Сообщение удалено смотрителем omni // ] |
Сегодня/завтра проведу серию тестов и вернусь сюда с точными ответами |
для Жеррри2:
Судя по примеру и формуле - побежит до нимфы.
Но это тестить нужно |
ну да, все правильно
ищет ближайшую (геометрически) клетку с которой можно ударить - туда и идёт
https://skr.sh/sPee0lt2aSr
то есть в такой ситуации он игнорит крайних магов, и на ярости бежит мимо них к центральному |
https://mirror.heroeswm.ru/forum_messages.php?tid=2969266&page=0#54132971
нашёл октябрьскую тему) |
ещё из интересного:
https://skr.sh/sPeqWwb1Tjl
в такой ситуации у него есть две ближайшие клетки, и на каждой из них есть два доступных для удара стека
и он действительно можно побежать в любую из этих двух клеток и потом ударить любого из двух магов)
это конечно забавно с точки зрения реальной логики "ярости", но по алгоритму всё четко |
https://skr.sh/sPe8kQTDToY
со стрелочками) |
омни как всегда лучший |
https://skr.sh/sPefoTEHhe4
нужно больше стрелочек!
16 равновероятных вариантов для берса) |
для omni:
Спасибо! Максимально подробно и понятно теперь!
Лунник в знак благодарности отправлен:) |
Пес ближе |