 |
Темы без ответов | Активные темы
|
MacMar
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Сб янв 24, 2004 17:17 Сообщения: 316
Откуда: Киев
|
|
| Вернуться к началу |
|
 |
|
Tizya
|
|
| Не в сети |
| Плетенщик кристаллов |
 |
Зарегистрирован: Пт авг 13, 2004 21:03 Сообщения: 161
|
|
MacMar, а ты не пробовал исользовать в качестве формулы для рассчета атаки вот такую формулу:
a1 + a2 + a3 +... - a1a2 - a2a3 - a3a4 -...?
Имеется ввиду нечто такое ~= a1 + (1 - a1) a2 + (1 - (1 - a1)a2)a3+...
а1 - атака юнита; а2,.. - бонусы.
|
|
| Вернуться к началу |
|
 |
|
sPUNK
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Вт янв 06, 2004 21:30 Сообщения: 354
Откуда: оттуда
|
Пока куркулятор был полноценным, я заметил такую фичу, но забыл сообщить. При расчёте стоимости армии учитывается здоровье юнитов, а не их количество. Например, интересные цифры появляются, если стравить по одному юниту третьего левела с сотней юнитов первого и т.п.
Сейчас проверить это ещё раз не могу, ибо платно
Tizya, вряд ли это действительно, т.к. результат будет зависеть от того, в какой последовательности брать а1, а2 и т.д.
_________________ Disobedience is a part of a game...
|
|
| Вернуться к началу |
|
 |
|
MacMar
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Сб янв 24, 2004 17:17 Сообщения: 316
Откуда: Киев
|
2Tizya:
Пробовал, не работает. С этого собственно и начинал, и поэтому долго путался с расовыми бонусами. Для меня это было неприятной неожиданностью, что атака и защита считаются по разным формулам...
2sPUNK:
Сейчас при расчете стоимости и урона берутся действительные значения количества юнитов, не округляя до целых, т.е. если его осталось 0.001 Рыцаря, то и стоить он будет соотв. Наверное, это ты и заметил. Я не совсем уверен, что в Сфере так же считается, но были какие-то логи, которые на эту мысль наталкивали.
Тебе, кстати, симулятор бесплатный - мы вместе на Сириусе были, да и вообще. Черкани мне в ПМ логин/пароль для симулятора - я тебя добавлю.
ЗЫ. Результат по формуле Tizya от последовательности выбора а1,а2,... не зависит - это можно по индукции доказать. 
|
|
| Вернуться к началу |
|
 |
|
MacMar
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Сб янв 24, 2004 17:17 Сообщения: 316
Откуда: Киев
|
|
добавил религию и дин. прослойку
2sPUNK:
не обратил внимания на то, что у Tizya немного другая формула.
я имел в виду и пытался считать такую:
сумм_характ = a1 + (1 - a1) a2 + (1 - (а1 + (1 - a1)a2))a3+...
вот она от порядка выбора а1, а2, ... не зависит, и по ней считаются бонусы на защиту
она же в другом виде:
(1 -сумм_характ) = (1-а1)(1-а2)(1-а3)...
где а1 - базовая харктеристика, а2, а3, ... - бонусы
_________________ [url=http://ds.civ3000.com/ru/fightsim.html]Симулятор боя[/url], [url=http://ds.civ3000.com/ru/algorithm.html]Алгоритм боя[/url], [url=http://ds.civ3000.com/ru/logparser.html]Парсер логов[/url], [url=http://ds.civ3000.com/ru/arts.html]Арты по логам[/url]
|
|
| Вернуться к началу |
|
 |
|
DVolk
|
|
| Не в сети |
| Кадет |
 |
 |
Зарегистрирован: Чт июл 29, 2004 6:22 Сообщения: 995
|
|
Вот что я не пойму. Есть ограничение на 95% защиты, т.е. иными словами, знаменатель в формуле Брноя/(1-защита) не должен превышать 0,05. Однако, если считать суммарную защиту как
(1-Защ)*(1-арт1)...(1-арт10), то это произведение будет минимум 0,073 (при использовании 10 огромных артов маскировки 11,6% и базовой защите 75%):
(1-0,75)*(1-0,116)^10=0,073, т.е. максимальная защита равна 92,7%. Так какой тогда смысл в таком ограничении? Или я неправильно считаю?
PS: Даже если добавить религию созерцателей и расовый бонус псолао, получится 0,059.
_________________ [img]http://www.destinysphere.ru/ds/images/world_logo/kassiopeia_1.gif[/img] DVolk. Просто нейтрал, не злой и не добрый.
|
|
| Вернуться к началу |
|
 |
|
MacMar
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Сб янв 24, 2004 17:17 Сообщения: 316
Откуда: Киев
|
угу, у меня так же получилось...
не знаю я, какой в этом ограничении смысл
может, все-таки с формулой что-то не то, но пока вроде все с реальными логами совпадало... хотя проверить надо еще разик, а то в последнее время появились какие-то странные псолеянские логи...
_________________ [url=http://ds.civ3000.com/ru/fightsim.html]Симулятор боя[/url], [url=http://ds.civ3000.com/ru/algorithm.html]Алгоритм боя[/url], [url=http://ds.civ3000.com/ru/logparser.html]Парсер логов[/url], [url=http://ds.civ3000.com/ru/arts.html]Арты по логам[/url]
|
|
| Вернуться к началу |
|
 |
|
Simply
|
|
| Не в сети |
| Плетенщик кристаллов |
 |
 |
Зарегистрирован: Вт авг 03, 2004 20:58 Сообщения: 193
|
|
Молодец MacMar!
Я в EXELе мучился с подбором формул по логам боёв, потом только познакомился с твоим алгоритмом. Хоть нмного времени сэкономил, спасибо! Хотя самим симулятором не пользовался.
Касательно задачи определения оптимального юнита и состава армии предлагаю один, на мой взгляд, подходящий вариант.
1. Временной ресурс считаем определяющим, т.е. лучше тот игрок, который за равный промежуток времени построит более эффективную армию.
2. Расход и состав затрачиваемых на постройку юнитов приводим к одному ресурсу (например, к энергии или прроду). Состав ресурсов считаем не принципиальным, т.к. во многом можно за счёт специализации подобрать нужный в процентном соотношении состав для производства. Следует сказать, что взаимная стоимость ресурсов может быть для каждого игрока своя в зависимости от застройки соты и ресурсных бонусов.
2. Рассчитываем число юнитов всех типов, производимых за равный для всех условный временной интервал (я, например, считал за 18 минут, т.е. за время раунда), и их совокупный урон (т.е. точнее атака*урон) с учётом рассовых бонусов, т.к. от них избавиться нельзя, и считаем также совокупное здоровье (HP). Также рассчитываем стоимость производства построенного количества юнитов.
3. Для учёта помимо времени производства стоимости производства определяем самый дорогой юнит и приводим к его стоимости производство остальных юнитов. Условно, если танк в 2 раза дешевле, чем солдат, то считаем, что построив 2 фабрики, за равный промежуток времени и одинаковое количество (стоимость) ресурсов мы можем произвести танков в 2 раза больше. Исходя из этого корректируем расчитанный по п.1 совокупный урон и HP танков. Надо отметить, что лишний завод, занимающий дополнительную клетку на соте, обязательно должен быть учтён в увеличении стоимости производства юнитов на втором заводе.
4. Расчёты по п.п.1-3 позволяют определить юниты, с наилучшими атакующими характеристиками. Но надо ещё учесть оборонительные способности юнитов, которые конечно же зависят от силы и состава нападающей армии из-за процентной характеристики - защиты.
Для этого выбирается условное значение наносимого построенным юнитам урона. Можно выбрать средний размер урона, рассчитанный по п.п.1-3, а можно выбрать размер урона, наиболее сильного в атаке типа юнита, также рассчитанный по п.1-3, или вообще любую, но одинаковую для всех величину урона. После этого рассчитываются потери произведенных согласно п.п.1-3 юнитов при равном выбранном значении наносимого урона. И определяется аналогично с п.1 совокупный размер урона оставшихся юнитов. Тот тип юнитов, у которых размер оставшегося размера урона будет наибольшим, и есть самый оптимальный.
Сразу оговорюсь, что для противоборства заведомо более сильной армии, наиболее эффективным будет один тип юнитов, а для примерно равного противника - другой.
Для расчёта состава армии вторым этапом будет расчёт наиболее эффективной комбинации юнитов по аналогичному алгоритму.
Однако, учитывая, что большую роль в Сфре играет существующий сегодня принцип равного распределения урона на все группы юнитов, всё-таки принцип прослойки и прикрышки выигрывет перед комбинациями юнитов. Другими словами наилучшей комбинацией будет одна группа основного типа юнитов+прикрышка из большого количества юнитов, имеющих сильную защиту и большое количество дешевого здоровья (у воранеров это танкеры), + прослойка по одному юниту всех других типов.
|
|
| Вернуться к началу |
|
 |
|
MacMar
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Сб янв 24, 2004 17:17 Сообщения: 316
Откуда: Киев
|
Первый человек сделал сегодня добровольный взнос в поддержку сайта. У мну праздник
Добавил мимикров, сделал строже проверку синтаксиса.
2Akzium:
вполне возможно, надо проверять
с большими артами у меня сим, похоже, ошибается
2Simply:
1. Согласен.
2. Некорректно для производства. Например, продиум от еды существенно отличается - они добываются на совсем разных клетках. В производстве их обменять др на др нельзя, только в торговле.
Для тех ресов, которые можно переводить др в др - меновая стоимость конечно разная для разных игроков.
3. Можно и так. По-хорошему, нужно честно учесть все ограничения по времени и выработке ресурсов, и решить задачу оптимизации. Когда я считал - временем постройки юнитов пренебрегал (т.к. почти всегда можно кучу фабрик поставить), ограничения на производство ресов у меня гораздо раньше срабатывало.
4. Теоретически верный критерий оптимальности юнитов, это эфф_урон * эфф_здоровье.
Но на практике лучше строить войска с большим уроном, потому что замаешься Охранникам динпрослойку выставлять
[UPDATE]
Лучше брать sqrt(эфф_урон * эфф_здоровье), чтобы суммарная эффективность армии из одного типа юнитов линейно от числа этих юнитов зависела...
_________________ [url=http://ds.civ3000.com/ru/fightsim.html]Симулятор боя[/url], [url=http://ds.civ3000.com/ru/algorithm.html]Алгоритм боя[/url], [url=http://ds.civ3000.com/ru/logparser.html]Парсер логов[/url], [url=http://ds.civ3000.com/ru/arts.html]Арты по логам[/url]
Последний раз редактировалось MacMar Пн окт 18, 2004 15:10, всего редактировалось 1 раз.
|
|
| Вернуться к началу |
|
 |
|
ZozoLala
|
|
| Не в сети |
| Инженер-продиумщик |
 |
 |
Зарегистрирован: Пн июл 19, 2004 23:35 Сообщения: 210
Откуда: Из Пепелаца с Гравицаппой
|
MacMar писал(а): Добавил мимикров, сделал строже проверку синтаксиса.
Проверка это хорошо но зачем проверяется верхний регистр в написаниях юнитов? Крейсер != крейсер
_________________ [size=75]
Tommy, can you hear me?
See me, Feel me,
Touch me, Heal me!
[/size]
|
|
| Вернуться к началу |
|
 |
|
MacMar
|
|
| Не в сети |
| Командир соты |
 |
Зарегистрирован: Сб янв 24, 2004 17:17 Сообщения: 316
Откуда: Киев
|
|
В принципе, незачем, но так уж повелось... Мне так проще парсер было писать.
Добавил себе в туду, как-нибудь исправлю.
зы. Верхний регистр всегда проверялся, просто теперь парсер ошибку выдает, а раньше просто такую строку скипал.
_________________ [url=http://ds.civ3000.com/ru/fightsim.html]Симулятор боя[/url], [url=http://ds.civ3000.com/ru/algorithm.html]Алгоритм боя[/url], [url=http://ds.civ3000.com/ru/logparser.html]Парсер логов[/url], [url=http://ds.civ3000.com/ru/arts.html]Арты по логам[/url]
|
|
| Вернуться к началу |
|
 |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 72 гостя |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|
 |