Language:

Автор Тема: Тестовые битвы  (Прочитано 9769 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Тестовые битвы
« : 2015-11-12, 10:51:19 »
Все отряды численностью в одну тысячу.
Слева нападающие, сверху защита.
Колонка A -- сила атаки до рэндома, колонка D -- сила защиты до рэндома.
Все драки на степной клетке вне культурных границ, без улучшений.

Собирался доделать вчера, но опять отвлекли. Выкладываю пока наполовину сделанное.

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #1 : 2015-12-24, 12:09:17 »
Благодаря Вахе удалось доделать наконец полную табличку (первая на скрине). Вторая таблица -- приведенные к единице показатели. Изучаем, ищем ошибки. Наверняка где-то опечатки вкрались...

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #2 : 2015-12-24, 15:48:24 »
Так, есть аномалии
луки против охотов: 6 к 1 вместо 5 к 1, (UPD: это на самом деле правильно, потому что у луков помимо бонуса брони есть еще бонус против пехоты)
луки против гоплитов: 1 к 1,334 вместо 1 к 2. (UPD: 1 к 2 быть и не должно, потому что у луков есть бонус против пехоты, а гоплитов 50% бонус против луков)

Судя по тому, что в отчете рыцари против пик нет строки силы с учетом особенностей отрядов, бонус равнины и бонус против конных взаимно уничтожаются, т.е. работа над оценкой бонусов проводится до расчета силы отрядов и в формулу подставляется итоговое значение. А если значение бонуса одинаковое, то расчет с бонусами не делается.

Судя по всадники против охотов 1333 против 666 бонус равнины это не простое +100% или х2, он применяется и к отряду, пользующемуся бонусом, и к отряду, страдающему от бонуса.

Еще мысли? )
« Последнее редактирование: 2016-07-14, 11:42:26 от Stan »

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #3 : 2015-12-24, 16:03:48 »
Мысль только одна. Нужна такая же таблица, но бой в лесу.
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #4 : 2015-12-24, 16:10:44 »
Мысль вторая:
Цитировать
Все отряды численностью в одну тысячу.

Т.е. разное снабжение нужно для отрядов? 1000 гетайр и 1000 лучников это же не одно и тоже.


Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #5 : 2015-12-24, 16:24:38 »
Интуиция подсказывает, что формула должна быть одинаковой для всех случаев. И здесь уже полно драк без участия верховых. Так что не исключено, что лесная таблица нам никакой новой информации не даст. Что не исключает того, что придется ее сделать, если не справимся с анализом этой.
Да, естественно, снабжение разное. Расчет силы надо проверять либо на отрядах равной численности, либо на отрядах с равным номиналом атаки-защиты. Учет снабжения или потерь будет просто давать ненужную информацию.

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #6 : 2015-12-24, 16:30:50 »
Лесная таблица даст очень интересные и полезные результаты для всадников, гетайров и рыцарей.
Ну т.е. лесная таблица могла бы быть размером 3 на 13
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #7 : 2015-12-24, 16:32:10 »
Найди напарника и сделай. Войск могу выдать.

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #8 : 2015-12-24, 16:43:49 »
Если уж быть честным то территория города - тоже особенная клетка, бонусы по другому работают ...
Выходит еще нужна таблица для обороны в городе ...
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #9 : 2015-12-24, 19:08:15 »
Breakthrough 1 :-)
1333+666, 1714+285, 8816+183. В формуле вероятно участвует сумма номиналов атаки-защиты. :-)

Надо проверить: нигде сумма сил не превышает суммы номиналов. :-)
« Последнее редактирование: 2015-12-24, 19:11:10 от Stan »

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #10 : 2015-12-24, 20:37:17 »
Соотношение номиналов гетайры-лучники 3 к 1.
0,75 к 0,25 в сумме номиналов.

Силы итоговые: 3428 к 571. Или 0,857 к 0,142.

0,857/0,75=1,142
0,142/0,25=0,568

И 1,142/0,568 примерно равно 2 с хорошей точностью.

Значит коэффициент равнины 2 зашифрован где-то в отдельной подформуле, которая выдает эти два коэффициэнта (1,142 и 0,568), чтобы на них умножить изначальные.

Легко видеть, что 0,75*2*k+0.25*k = 1, если правильно предположение о неизменности суммы номиналов.
Следовательно, k=1/(0,75*2+0,25). //Это частный случай, естественно. Но общий принцип должен быть похож. :)

Надо проверить на других отрядах и допилить до общего вида. )
« Последнее редактирование: 2015-12-24, 20:40:54 от Stan »

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Расчет силы однородных отрядов в ФоНе
« Ответ #11 : 2015-12-25, 09:59:17 »
Все в общем, просто.
A - номинальная сила атакующего
D - номинальная сила защищающегося

Sa=A/(A+D) - доля атакующего в сумме номинальных сил
Sd=D/(A+D) - доля защищающегося

Ba - общий бонус атакующего
Bd - общий бонус защищающегося

Ba= 1 + бонус1 +... +бонусN - N
Bd аналогично

Ka, Kd - коэффициэнты изменения номинала

Ka=1/(Sa+Sd*Bd/Ba)
Kd=1/(Sd+Sa*Ba/Bd)

Итоговая "сила с учетом особенностей войск"
A*Ka - для атакующего
D*Kd - для защиты

Наслаждайтесь. :)
« Последнее редактирование: 2015-12-25, 11:23:39 от Stan »

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
На примере 1000 гетайров против 1000 охотников в степи.

A=3000, D=1000
Sa=3000/4000=0,75
Sd=1000/4000=0,25

Ba=1+5+2-2=6
Bd=1

Ka=1/(0,75+0,25*1/6)=1,2631
Kd=1/(0,25+0,75*6/1)=0,2105

Итог
3000*1,2631=3789,3
1000*0,2105=210,5

Те же показатели, что и в таблице: http://forum.fatenation.ru/index.php?topic=4220.msg36275#msg36275

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Цитировать
Ba=1+5+2-2=6

Это откуда ?

А как рассчитать бой смешанными войсками?

А правила ВБР (случайность) каковы?
« Последнее редактирование: 2015-12-25, 18:07:25 от #user571 »
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Barinovik

  • Вождь
  • **
  • Сообщений: 70
  • Игрок
    • Просмотр профиля
Все очень интересно, но хотелось бы формулу разнородных отрядов....

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Изменение силы, что интересно, происходит в пределах номинала более слабого, так что в драке 1000 охотников против 100 лучников у охотов не должна сила упасть ниже 900, а у лучников подняться выше 200, несмотря на то, что у лучников пятикратный бонус брони и двойной против пехоты.

Это неверно. Ниже контрпример.
« Последнее редактирование: 2015-12-29, 12:13:27 от Stan »

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Изменение силы, что интересно, происходит в пределах номинала более слабого, так что в драке 1000 охотников против 100 лучников у охотов не должна сила упасть ниже 900, а у лучников подняться выше 200, несмотря на то, что у лучников пятикратный бонус брони и двойной против пехоты.

непонятно  :'(
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
http://ipic.su/img/img7/fs/2015-12-2813-08-11Skrinshotekrana.1451300947.png

200 луков против 1000 охотов
Номинал 200 на 1000, а с учетом особенностей 654 на 545. Хм проверяем...

A = 200
D = 1000

Sa=200/(1200)=0,1666- доля атакующего в сумме номинальных сил
Sd=1000/(1200)=0,8333 - доля защищающегося

Ba = 6
Bd = 1

Ka=1/(0,8333+0,1666*1/6)=1,1613
Kd=1/(0,1666+0,1666*6/1)=0,8574

A*Ka = 200*1,1613=232,26
D*Kd = 1000*0,8574=857,4

Что-то с формулой не так... :)

Здесь ошибка в подстановках Ka=1/(0,1666..., а не 0,8333...
« Последнее редактирование: 2015-12-29, 12:14:34 от Stan »

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Stan, откуда ты берешь Ba = 6 ?
Может количество надо внести/вынести в/из скобок?

Почему бы АРМИНУ не расшарить код и формулу?
« Последнее редактирование: 2015-12-28, 16:04:07 от #user571 »
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн YurikSSS

  • Житель
  • *
  • Сообщений: 2
    • Просмотр профиля
Да когда лучники против охотников бьются, то все понятно

Номинал лучников "А", номинал охотников "В"

Сила лучников = 36*А*А/(6*А+В)
Сила охотников = В*В/(6*А+В)

Это ж тупо математика: 2-3 скрина где бьются однородные отряды и можно все рассчитать
Вот что делать с неоднородными отрядами - там все запутанно  :idiot2:

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Ba= 1 + бонус1 +... +бонусN - N
Чукча не читатель? )

Код Армин шарить не хочет и имеет полное право. Плюс, чтоб проверить на ошибки его код, выведение формулы вместо анализа кода является более надежным вариантом. Не говоря уже о том, что у нас будет наглядная демонстрация способности нашего комьюнити в чем-то разобраться. )

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Запись со 169 скринов битв отрядов равной численности есть здесь: http://forum.fatenation.ru/index.php?topic=4220.msg36275#msg36275

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Stan, что за загадочные 6 бонусов у лучников?
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
http://ipic.su/img/img7/fs/2015-12-2813-08-11Skrinshotekrana.1451300947.png

200 луков против 1000 охотов
Номинал 200 на 1000, а с учетом особенностей 654 на 545. Хм проверяем...

A = 200
D = 1000

Sa=200/(1200)=0,1666- доля атакующего в сумме номинальных сил
Sd=1000/(1200)=0,8333 - доля защищающегося

Ba = 6
Bd = 1

Ka=1/(0,8333+0,1666*1/6)=1,1613
Kd=1/(0,1666+0,1666*6/1)=0,8574

A*Ka = 200*1,1613=232,26
D*Kd = 1000*0,8574=857,4

Что-то с формулой не так... :)
A = 200, Ba = 1+2+5-2=6
D = 1000, Bd=1

Sa=200/(1200)=0,1666- доля атакующего в сумме номинальных сил
Sd=1000/(1200)=0,8333 - доля защищающегося

Ka=1/(Sa+Sd*Bd/Ba)=1/(0,16666+0,8333*1/6)=3,2728
A*Ka=654,57

Kd=1/(Sd+Sa*Ba/Bd)=1/(0,8333+0,16666*6/1)=0,5454
D*Kd=545,47

Формула правильная, я просто ошибся вчера, где какие показатели.

Каруков, у лучников бонус брони (х5) и бонус против пехоты (х2). Они складываются по формуле выше как 1+5+2-2=6.
« Последнее редактирование: 2015-12-29, 16:26:21 от Stan »

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Интуитивно понятно, что битва смешанных отрядов считается через Kd/Ka и Ka/Kd отношения, только каждый отдельный бонусN в формуле B= 1 + бонус1 +... +бонусN - N умножается на долю юнитов, пользующихся бонусом и делится на долю юнитов, страдающих от бонуса.

Тестовая драка 1000 рыцарей против 240 лучников и 42 охотников. Сила без учета рандома 6170 на 111.
A = 6000
D = 282

Sa = 6000/6282=0,95465
Sd = 282/6282 = 0,04489

Ba =1 + свой_бонус1 * доля_чужих_против_которых_действует_бонус1 + … + бонусN // Нет там никакого минус N, похоже. Просто пятикратный бонус равен 4, а двукратный 1 

Ba = 1+4*42/282+1*282/282=2,59574
Bd = 1

Ka=1/(Sa+Sd*Bd/Ba)=1/(0,95465+0,04489*1/2,59574)=1,02886
Kd=1/(Sd+Sa*Ba/Bd)=1/(0,04489+0,95465*2,59574/1)=0,39636

A*Ka=6173,16
D*Kd=111,77352

Полными формулами:

A*Ka=6000/(6000/6282+282/6282*1/(1+4*42/282+1*282/282))=6170,2775
D*Kd=282/(282/6282+6000/6282*(1+4*42/282+1*282/282)/1)=111,7224

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #25 : 2015-12-30, 11:46:18 »
Объединим все здесь и будем ковырять дальше.

Оффлайн #user571

  • Император
  • *
  • Сообщений: 1046
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #26 : 2015-12-30, 14:54:26 »
Stan, может вот это будет в помощь?
http://habrahabr.ru/post/163195/
Миром правит не ЛОЖА, а ЛАЖА

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #27 : 2015-12-31, 17:35:25 »
Попробуй, я не против. Лично я думаю, что а) генетические алгоритмы скорее прикольная игрушка, чем реальный метод, б) использовать их надо, когда решение ищется вслепую, если есть вменяемые предположения относительно формул, то анализом их вскрывать быстрее, в) если у хабрапостера оно работает для трех примеров и трех переменных, это не значит, что это хорошая идея использовать его для подбора формулы, в которой переменных под четыре десятка может набраться.

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #28 : 2016-01-15, 12:52:03 »
Гоплит на поле сильнее лучников на 33% (1.5 с бонусом против 2).

Кроме того в следующем раунде появится как минимум колесница. У лучников не будет бонуса против неё то есть сила их 1. А у колесницы будет тройной бонус на равнинах + базовая сила атаки 2.

Итого Колесница против лучников 1 к 6-ти
Колесница против гоплитов 1 к 3

В лесу колесница не имеет бонусов. И сражается 1 к одному и с гоплитами и с лучниками.

Оффлайн Bason

  • Житель
  • *
  • Сообщений: 16
  • Игрок
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #29 : 2016-05-16, 08:00:06 »
я только одного не понял
Итоговая "сила с учетом особенностей войск"
A*Ka - для атакующего
D*Kd - для защиты
вот полуаем силу а как высчитывается потеря солдат сколько умрет в нападении сколько в защите?

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #30 : 2016-05-16, 08:52:45 »

Оффлайн Stan

  • Супермодератор
  • Император
  • *****
  • Сообщений: 1336
    • Просмотр профиля
Re: Тестовые битвы
« Ответ #31 : 2016-05-16, 12:20:52 »
Никогда не интересовался потерями, потому что никогда не репортились непонятки с ними, но в целом

Коэффициент потерь победителя = (сила проигравшего / сила победителя)^1,3

(975/3536)^1,3=0,1873

27*0,1873=5,0571 #hunters
2*0,1873=0,3746 #horsemen
136*0,1873=25,4728 #hoplites
909*0,1873=170,2557 #archers
816*0,1873=152,8368 #hired hetairoi
« Последнее редактирование: 2016-07-14, 11:44:41 от Stan »