[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 598: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 654: sizeof(): Parameter must be an array or an object that implements Countable
Art of Tactic • Программа для расчета стоимости (Си) - Интернет-ресурсы и полезные сервисы
Страница 1 из 1

Программа для расчета стоимости (Си)

Добавлено: 14.09.2015, 15:02
Константин
По просьбе трудящихся выкладываю программу для расчета стоимости отрядов.

Формула расчета такая:

1. Боевая эффективность:
БЭ=М*(ИО0*(ЗА+1)+ИО-1+ИО-2 + и т.д.),
где
М - сумма всех меткостей
ИО0, ИО-1 и т.д. сумма всех интенсивностей огня при целом отряде, при численности - 1 и т.д.
ЗА - защита
Также при расчете БЭ учитывается размер БК, ББ артиллерии и т.п.

2. Стоимость отряда:
С=А*БЭ+B
А и В - константы, полученные из аппроксимации линейной функцией стоимостей официальных отрядов в зависимости от типа отряда.
При этом А для всех типов отрядов одинаковая.

По поводу самой программы. Она написана в Си. В тексте программы есть комментарии, которые позволяют понять, что именно присваивается каким переменным. В конце программы полный перечень представленных в ней официальных и неофициальных отрядов. Программа выдает три столбика: 1) БЭ, 2) стоимость при одном показателе защиты, 3) стоимость при трех показателях защиты (перед, борта и зад, крыша). Соответственно, (3) применимо только к танкам.

Текст программы: https://yadi.sk/d/EFC6v3RZj5QrT
Скачать Visial C++ 6.0, на котором написана программа, можно тут: http://rutracker.org/forum/viewtopic.php?t=34334
Небольшая инструкция:
Спойлер
Открываем в Си:
Изображение
В программе перечисляются почти все официальные отряды и куча моих неофициальных. Характеристики присваиваются переменным:
n - номер отряда по коду Звезды, мои пронумерованы свободными номерами. Далее в скобках в кавычках страна отряда и краткое название.
a[n][0][1]-тип отряда: 1-пех, 2-арт и т.д.
a[n][1][1]-численность
a[n][2][1]-защита. (Для танков в этой строке еще 3 числа, они для стоимости с 3-мя защитами)
a[n][2][2]-размер БК, если не указан, то 10.
M[n][0]-меткость в ББ, M[n][1]-меткость на расстоянии 1 гекс и т.д.
a[n][3][1] и т.д - таблица ИО в привычном нам виде.

Для некоторых отрядов вместо таблицы ИО дан тип орудия, например "D25T(n);". Таблицы ИО для распространенных орудий в начале программы.

В конце программы перечислены все отряды. Номера с "+" - мои отряды. Можно искать в тексте программы нужный отряд, введя номер в окошко поиска.
Изображение

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

Как запустить программу?
Нажимаем листочки со стрелочкой, затем восклицательный знак. Со всем соглашаемся.
Изображение

Что она выводит?
Номер отряда - страна - название - БЭ - стоимость - стоимость с 3-мя защитами.
Отряды упорядочены по типу, затем по стоимости.
Изображение

Добавлено: 14.09.2015, 15:15
Marshal140
Спасибо огромное

Добавлено: 15.09.2015, 15:34
Константин
Lena писал(а):
Константин писал(а):Константин писал(а):
Программу уже выложил: /viewtopic.php?f=57&t=186
Спасибо. Только что-то она у меня не открывается - нет подходящей программы.
О том и речь, это собственно текст программы, написанной на Си, которая считает стоимости отрядов, характеристики которых указаны в самом тексте. Соответственно, чтобы ей воспользоваться, нужно забить новые характеристики в текст и откомпилировать его в Си. Но для это нужно знание хотя бы основ программирования.

Добавлено: 30.09.2015, 10:07
Marshal140
Константин писал(а):По просьбе трудящихся выкладываю программу для расчета стоимости отрядов.

Формула расчета такая:

1. Боевая эффективность:
БЭ=М*(ИО0*(ЗА+1)+ИО-1+ИО-2 + и т.д.),
где
М - сумма всех меткостей
ИО0, ИО-1 и т.д. сумма всех интенсивностей огня при целом отряде, при численности - 1 и т.д.
ЗА - защита
Также при расчете БЭ учитывается размер БК, ББ артиллерии и т.п.

2. Стоимость отряда:
С=А*БЭ+B
А и В - константы, полученные из аппроксимации линейной функцией стоимостей официальных отрядов в зависимости от типа отряда.
При этом А для всех типов отрядов одинаковая.

По поводу самой программы. Она написана в Си. В тексте программы есть комментарии, которые позволяют понять, что именно присваивается каким переменным. В конце программы полный перечень представленных в ней официальных и неофициальных отрядов. Программа выдает три столбика: 1) БЭ, 2) стоимость при одном показателе защиты, 3) стоимость при трех показателях защиты (перед, борта и зад, крыша). Соответственно, (3) применимо только к танкам.

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

Константин, я так и не смог разобраться с этой программой и решил Вашу формулу записать в Excel. Не могли бы Вы поделиться коэффициентами А и В?

Добавлено: 30.09.2015, 14:00
Константин
В программе они неявно даны, пересчитал, вроде выходит, что А=0.0467
В=
Пех и Арт: 7.96
Тех и БТ: 11.11
ЛТ: 9.62
СТ: 11.63
ТТ: 22.22

Для проверки должно получиться:
Обычная сов. пехота: 11.7
Т-34: 35.1
КВ-1: 49.8

Добавлено: 30.09.2015, 14:35
Marshal140
Константин писал(а):В программе они неявно даны, пересчитал, вроде выходит, что А=0.0467
В=
Пех и Арт: 7.96
Тех и БТ: 11.11
ЛТ: 9.62
СТ: 11.63
ТТ: 22.22

Для проверки должно получиться:
Обычная сов. пехота: 11.7
Т-34: 35.1
КВ-1: 49.8

Спасибо.
Подставил в формулу:
Советская пехота - 43,92
Т34 - 180,87
КВ1 - 221,35

Что-то не так с формулой... Можете ее еще раз написать?
И еще: как Вы считаете легкую и тяжелую авиацию?

Добавлено: 30.09.2015, 17:17
Константин
Да, посчитал, получилось, как у Вас. Нашел ошибку:

Надо еще БЭ разделить на 6 (число сторон кубика, программа вначале вероятностный подход использовала) и умножить на (кол-во снарядов)/(кол-во снарядов + время перезарядки) - т.е. обычно 10/12=0.8333.

В итоге для КВ-1:
5*8*80=3200
+
8*71=568
+
8*62=496
=4264
/6*0.833=592
*0.0467+22.22=49.9

Для пехоты надо не забывать, что ИО по танкам только в ББ, для артиллерии правило ББ артиллерии тоже отдельно считать, а у дальности больше 6 (для гаубиц) вычитать 2 кубика за закрытую цель.

По поводу самолетов - использую только штурмовики, да и то редко, так что коэффициенты не считал.

Добавлено спустя 33 минуты 14 секунд:
Если что, в первое сообщение добавил ссылку, где скачать Си нужной версии и (под спойлером) как работать с программой.

Добавлено: 01.10.2015, 08:24
Marshal140
Константин писал(а):Да, посчитал, получилось, как у Вас. Нашел ошибку:

Надо еще БЭ разделить на 6 (число сторон кубика, программа вначале вероятностный подход использовала) и умножить на (кол-во снарядов)/(кол-во снарядов + время перезарядки) - т.е. обычно 10/12=0.8333.

В итоге для КВ-1:
5*8*80=3200
+
8*71=568
+
8*62=496
=4264
/6*0.833=592
*0.0467+22.22=49.9

Для пехоты надо не забывать, что ИО по танкам только в ББ, для артиллерии правило ББ артиллерии тоже отдельно считать, а у дальности больше 6 (для гаубиц) вычитать 2 кубика за закрытую цель.

По поводу самолетов - использую только штурмовики, да и то редко, так что коэффициенты не считал.

Добавлено спустя 33 минуты 14 секунд:
Если что, в первое сообщение добавил ссылку, где скачать Си нужной версии и (под спойлером) как работать с программой.

Спасибо большое)