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

Модератор: Николай 78

Константин M
Автор темы
Аватара
Константин M
Автор темы
Возраст: 37
Сообщения: 1758
Зарегистрирован: 20.07.2014
С нами: 9 лет 8 месяцев
Откуда: Москва

#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-мя защитами.
Отряды упорядочены по типу, затем по стоимости.
Изображение

Marshal140
Marshal140
Сообщения: 213
Зарегистрирован: 13.03.2015
С нами: 9 лет

#2 Marshal140 » 14.09.2015, 15:15

Спасибо огромное

Константин M
Автор темы
Аватара
Константин M
Автор темы
Возраст: 37
Сообщения: 1758
Зарегистрирован: 20.07.2014
С нами: 9 лет 8 месяцев
Откуда: Москва

#3 Константин » 15.09.2015, 15:34

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

Marshal140
Marshal140
Сообщения: 213
Зарегистрирован: 13.03.2015
С нами: 9 лет

#4 Marshal140 » 30.09.2015, 10:07

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

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

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

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

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

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

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

Константин M
Автор темы
Аватара
Константин M
Автор темы
Возраст: 37
Сообщения: 1758
Зарегистрирован: 20.07.2014
С нами: 9 лет 8 месяцев
Откуда: Москва

#5 Константин » 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

Marshal140
Marshal140
Сообщения: 213
Зарегистрирован: 13.03.2015
С нами: 9 лет

#6 Marshal140 » 30.09.2015, 14:35

Константин писал(а):В программе они неявно даны, пересчитал, вроде выходит, что А=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

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

Константин M
Автор темы
Аватара
Константин M
Автор темы
Возраст: 37
Сообщения: 1758
Зарегистрирован: 20.07.2014
С нами: 9 лет 8 месяцев
Откуда: Москва

#7 Константин » 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 секунд:
Если что, в первое сообщение добавил ссылку, где скачать Си нужной версии и (под спойлером) как работать с программой.

Marshal140
Marshal140
Сообщения: 213
Зарегистрирован: 13.03.2015
С нами: 9 лет

#8 Marshal140 » 01.10.2015, 08:24

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

Надо еще БЭ разделить на 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 секунд:
Если что, в первое сообщение добавил ссылку, где скачать Си нужной версии и (под спойлером) как работать с программой.

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


Вернуться в «Интернет-ресурсы и полезные сервисы»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость