Калькулятор - Medieval - TWoW.Games - Сообщество любителей умных игр Перейти к содержанию
TWoW.Games - Сообщество любителей умных игр

Калькулятор


LeChat

Рекомендуемые сообщения

У меня давно родилась идея сделать калькулятор, прогнозирующий результат сражения в MTW исходя из характеристик отрядов. Сделать просто шкалу полезности отряда бесполезно, т.к. могут быть несколько отрядов, один из которых сильнее другого но слабее третьего. В итоге сильнейшего нет и на шкале такую ситуацию отразить невозможно.

То есть силу войск имеет смысл оценивать в паре против кого то, а не саму по себе. Сила - понятие относительное.

У меня есть возможность реализовать такую вещь в виде нейронной сети и отгрузить ее в C или VB файл. Будет функция, у которой параметры - исходные параметры отрядо а выход - прогноз вероятности победы. Нужна статистика. Определенную статистику (для пехоты, скажающейся не в несколько рядов) я уже набрал и первую сеть построил. Результаты получились довольно приличными, например, при построении сети я не использовал параметры билмэнов и англо-саксонцев. Но несмотря на это сеть выдала точно 60% мы 40% вероятность победы. Естественно и все данные типа гази vs византийская пехота сеть априори отражает с той точностью, с какой эти данные снимали. А для неизвестных параметров она строит прогноз.

Такую сеть можно встроить в тюнер или редактор. Прогноз строится о вероятности победы и о предполагаемых потерях.

Статистики о разных копейщиках и о кавалерии у меня пока нет - нет времени делать. После того, как она появится, я могу сгенерить функцию на языке программирования примерно в течение 2 дней.

 

Вопрос - интересно ли это? Кто нибудь может помочь собрать статистику? (Посталкивать на равнине отряды лоб в лоб и записывать результаты)? Если да, то я тут опишу что надо делать и выложу шаблон куда заносить данные. Кому интересно, могу выложить уже сгенеренную формулу (там пока не учитываются бонусы многорядности и кавалерии). Но формула занимает 400 кб текста. Так что вызывать ее легко, а вот разбираться или переводить на другие языки программирования практически нереально...

Ссылка на комментарий
  • Ответов 77
  • Создана
  • Последний ответ

Топ авторов темы

  • Kirill

    8

  • Aleksander

    8

  • LeChat

    35

  • Contra

    8

Топ авторов темы

2 LeChat:

Дело хорошее. Но тогда нам нужна большая выборка. Если тестить то каждый случай хотя бы раз по пять. И записывать результаты. В свое время немного увлекался подобным тестированием. Помочь поднабрать статистику могу. Вопрос действительно имеет ли эта затея практическую ценность? Ведь результат сражений больших армий зависит от кучи факторов и предсказать погоду, местность, тактику сторон и силу игрока имхо непросто. :)

Ссылка на комментарий

2 Aleksander:

Я сейчас набрал 12 разных испытаний по 6 опытов. Итого 72 стычки. Естественно оценить с учетом реальных параметров невозможно - отсутствует куча факторов. Поэтому и спрашивал - стоит ли этим заниматься?

Ссылка на комментарий

2 LeChat:

 

Для Европы Универсалис эмулятор битв делал Сергей Пименов - это была неоценимая штука для планирования в Мультике:)

 

Для МТВ такое много сложнее - но если что то выйдет - будет интересно многим

Ссылка на комментарий

2 Chernish:

То, что есть сейчас, позволяет прогнозировать битвы некопейной пехоты на ровной местности без маневров и построений при лобовом чардже. Учитываются базовые чардж, защита, атака, мораль, броня, тип щита, дисциплинированность, степень использования щита, бронебойность. Плохо учитывается размер отряда - все отряды по 60 рыл - выборка нерепрезентативна. Планируется включить многорядность, защиту от кавалерии, атаку на кавалерию и тип войск (кавалерия/пехота).

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

Можно смоделировать все ситуации, но у нас не хватит статистики учесть все. Сейчас реально учитываются 3 десятка переменных. Нет проблем увеличить их до 3 сотен. Т.е. теоретически - возможно. Практически - нет.

Ссылка на комментарий
Я сейчас набрал 12 разных испытаний по 6 опытов. Итого 72 стычки. Естественно оценить с учетом реальных параметров невозможно - отсутствует куча факторов. Поэтому и спрашивал - стоит ли этим заниматься?

В принципе мне это было бы интересно. Скажи какие параметры и юниты. На праздники могу немного потестировать.

Ссылка на комментарий

Ну собственно вот. Параметры стороны a (она же первая, она де сторона игрока) прокомментированы. Параметры стороны d аналогичны. Берутся любые отряды - по желанию. Сталкиваются на поляне на карте айзенкура (вторая сверху). Условия - чтобы небыло дождя, снега, пустыни. Я предпочитаю тестировать на arid. Отряды без изменения строя и маневров сталкиваются лоб в лоб. Я подводил их пешком а в конце давал команду бежать. Чтобы был обоюдный чардж. Бой засекается до полной победы одной из стороны. Снимаются параметры cas a - потери вашей стороны. cas d - потери компа. wi : 1 - победа первой (вашей) стороны. 2 - победа компа.

Желательно проводить несколько боев - я проводил 6. И все заносятся в таблицу. Желательно сталкивать побольше близких по характеристикам войск, чтобы побеждали обе стороны. Кроме того полезно сталкивать совершенно разноплановые войска. И категорически желательно сталкивать войска, отличающиеся небольшим числом параметров, чтобы сеть определяла на что влияют эти самые параметры.

Категорически нежелательно маневрировать на поле боя, игнорировать какие то опыты (делать избирательную статистику).

МОжно проводить по нескольку опытов, но ручше уж по 6, как я начал.

Допустимо и даже полезно тестировать отряды с одинаковыми характеристиками кроме одной. Можно свои собственные отряды. Нельзя наращивать отрядам честь, оружие или защиту.

 

Сеть пока научена кое как на пехоту. Больших ляпов уже не делает и выдает прогнозы довольно уверенно. Но нет предела совершенству ;)

О том что такое конница и бокусы работы с ней сеть не знает абсолютно.

 

Думаю в праздники сделаю первую версию и выложу в понедельник. Но и после этого любая статистика будет полезна - сеть доучивается легко, хоть и довольно долго.

stat1.zip

Ссылка на комментарий

2 Aleksander:

Да можно и легкую. Тем более друг против друга и против легкой пехоты. Вот только просьба - если будешь гонять стрелковую кавалерию - не давай ей стрелять. А против себя стрелков не ставь. Для чистоты экскремента :)

Ссылка на комментарий

2 LeChat:

Вопрос - интересно ли это?

Интересно, разумеется! Но мне кажется, что практическая применимость твоей проги будет ограничена очень простыми вещами:

1. - Опытом конкретного игрока. Тут немало монстров, но зелёный игрок в состоянии продуть и выигрышную битву.

2. - Нежеланием большинства пользователей учить твою сеть. Т.е. работать она будет по тем данным, которые Вы нароете с Алекандером.

 

Вот если бы такая сеть могла обрабатывать статистику отрядов по реальным логфайлам конкретного игрока! Тогда, сам посуди, во-первых есть сотни уже готовых комбинаций отрядов, учитывающие предпочтения в составе войск именно этого игрока. Во-вторых приличная статистика по разным типам отрядов, влиянию звёзд генералов, опыта и тому подобные вещи. Думаю, что если на сделанную Вами модель взаимодействия, удастся накладывать некоторую функцию - профиль пользователя, то точность предсказания может существенно возрасти.

А то знаю я Вас, манчкинов, ;) - если дать Вам чуть больше чем пару отрядов драных пизантов, то результат битвы ясен и без нейронной сети. :D

А сделав такой тюнинг, можно будет приаттачить прогу к логфайлам конкретного игрока, встроив её, например, в лог-вьювер. Представляешь какой кайф - разместить на сервере twow каждому свой текущий обьективный рейтинг, по результатам двух сотен последних битв, например! Это уже и интересно и увлекательно. А главное, не потребует от пользователя никаких усилий. А то я вот, даже прочитав в своё время пяток статей и прослушав курс лекций по нейронному программированию совсем не уверен, что пойму что-либо в твоей формуле.

Если найдешь способ на основе выработаных тобою "чистых" критериев оценивать конкретного игрока, можно будет рейтинги завести, - не хуже шахматных. Хотя компьютер и тупой, но вот в сетевой игре.... эээээ, - что-то я замечтался. :lol:

Ссылка на комментарий

2 Engineer:

А в формуле ничего подставлять не надо. Проектируешь новый тип войск. И сравниваешь с существующими. Кто сильнее - сержанты милиции или негры с топорами? Нубийцы или пикинеры? Могут ли бердышники порвать рыцарей? формула по параметрам даст вероятность

Ссылка на комментарий

2 LeChat:

Хочу уточнить два момента.

1. Уровень сложности теста

2. Тест 6 раз за каждую сторону или 3 раза скажем за гассо и три за ментов сержантов(исключительно для чистоты экспиремента, маневры своим отрядом ессно исключены).

Ссылка на комментарий

2 Aleksander:

1) Уровень сложности - нормал. А то помехи будут внесены. Дополнительную мораль потом всегда можно учесть, прибавив 4 к базовой морали.

2) В идеале неважно. Так что я ставил себя защищающейся стороной, противник шел в атаку и я шел в атаку. Так что можно за одну сторону 6 раз. Если не лень, то можно и больше шести.

 

Я в выходные постараюсь сделать форму с удобоваримым интерфейсом. Потом если понравится - с набором статистики буду перестраивать сеть, оставив основную форму.

Ссылка на комментарий

2 Aleksander:

А сейчас интерфейса и нет. Просто колонки цифр с заголовком. Лучше еще подписывать кого именно тестировали. Но это необязательно - по крайней мере в сеть не пойдет :)

Интерфейс же будет для расчета по сети. Пока я обхожусь без него - у меня инструмент позволяет тестировать сеть, а уж потом отгружать ее в виде VB или C кода. Вот этот код и положу под интерфейс.

Ссылка на комментарий

Sorry за задержку. Первую версию калькулятора сделал, но забыл дома флэш-ридер, так что нечем флэшку прочитать :(

Ссылка на комментарий
  • 2 недели спустя...

Камрады! Поможите, люди добрые!

Я сделал калькулятор дома - в английском офисе XP. Считает пехоту, причем довольно прилично. Прогнозы на вопросы типа абимминцы vs сержанты милиции или билмэны vs алебарды, например, выдает отлично. ИМХО это не каждый на глазок спрогнозирует. Экспортнул его в 95, и макросы улетели в мастдай. А на работе офис 2000 русский.

Не подскажете, как сделать макросы, чтобы они воспринимались разными экселями? Всего лишь надо кнопку с приязанным вызовом функции. Функция уже есть в отдельном модуле. Но чтобы это работало в русском и английском, в XP, 2000 и 95 офисах... Или если не кнопку - то что?

Ссылка на комментарий

2 Kirill:

Ну попробую восстановить и отгрузиться в 97. Хотя вроде в 95 кнопочки Васиковские были.

А с русскими и английскими названиям методов, реагирующих на нажатие кнопок геморра не должно быть?

Ссылка на комментарий

Ну собственно вот. Пока только для пехоты. Сеть не очень большая - наберу еще статистики - повышу точность. Хотя точность уже достаточно приличная.

К сожалению пока только для русского экселя.

Найдете ляпсы в прогнозах - пишите. Буду доучивать. Я особых просчетов не нашел, и даже довольно сложные варианты типа сержанты милиции vs газийцы считаются корректно.

Calc.zip

Ссылка на комментарий

2 LeChat:

Нельзя ли еще инструкцию для тупых? :( У меня в Exel видны три листа - два чистых, на третьем табличка с параметрами отрядов, огромной кнопкой вычислить и числом сверху. Число, как я понимаю, характеризует вероятность победы одной из сторон. После заполнения таблицы и нажатия кнопки у меня открывается симпатичный листинг на VB.

 

 

 

И все. Офис русский, 2000.

post-5-1069670267.jpg

Ссылка на комментарий
2 LeChat:

Нельзя ли еще инструкцию для тупых? :(  У меня в Exel видны три листа - два чистых, на третьем табличка с параметрами отрядов, огромной кнопкой вычислить и числом сверху. Число, как я понимаю, характеризует вероятность победы одной из сторон. После заполнения таблицы и нажатия кнопки у меня открывается симпатичный листинг на VB.

 

 

 

И все. Офис русский, 2000.

Атака, защита, мораль и пр. - просто их значения из таблицы. Число поддержки рядов, число убийств для повышения ранга - тоже понятно.

Данные из списков об организованности, морали, щите - номер позиции в списке Инженера. Например у него последовательно про щит: NONE, SMALL, LARGE, CAV, PAVISE. Кавалерийский и павиза не тестировался. Номера обозначают: 0-NONE, 1-SMALL, 2-LARGE, 3-CAV, 4-PAVISE. Про организацию и дицциплину то же самое. Но учесть, что в списке первый индекс - пусто. Т.е. ничего не указано - 0. и дальше 1, 2, 3.

Пирсинг 1 - если есть. 0 - если нет.

Бонус щита почти у всех 1. У алебард 0.5.

Щит в рукопашной не используют только тяжелые янычары.

Защиту и атаку на кавалерию не включал, т.к. пока кавалерию не учитывал. Сделаю пехоту, потом добавлю и кавалерийские параметры.

Убить для повышения ранга - почти у всех - 1. У газийцев вроде 2. Чем ниже, тем лучше. Тем быстрее юниты набирают честь.

Огромная кнопка именно для того, чтобы не возникало вопросов что нажимать. Потом доведу интерфейс до ума.

В табличке параметры (кажется гази и арабская пехота). Меняешь параметры в табличке, жмешь на кнопку, вываливается прогноз на победу (в мессаг боксе). Число для теста. Чем ближе оно к 1, тем больше вероятность победы 1 стороны. Чем ближе к двойке - второй.

Непонятно, почему вываливается листинг на VB. У меня дома и на работе работает нормально. Офис дома XP, на работе 2000. Оба русские. Больше проверить негде. Буду смотреть.

Вообще для вычисления достаточно просто дернуть функцию Calc. Посмотри - может у тебя отключено выполнение макросов? Или включен пошаговый режим? Вот и вываливается - пытается отладить.... :)

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×
×
  • Создать...

Важная информация

Политика конфиденциальности Политика конфиденциальности.