Страницы: 1
RSS
Не могу написать формулу для подсчета производства ресурсов, в зависимости от времени постройки заводов, из игры
 
Всем привет, кто может помочь с написанием формулы, или как реализовать расчет?
П\с: лишь для лютых фанатов ексель))

Допустим есть игра, где надо строить заводы и электростанции
заводы производят ресурсы в минуту, на эти же ресурсы строятся сами заводы и электростанции
Я решил создать хронологию производства ресурсов в эксель, в зависимости от времени. Прошу скачайте)

В хронологии - поочередно строятся здания, выбираются по списку,  в ручную указывается "начало постройки" - когда произошел заказ здания
"Завершение постройки" - автоматически высчитывается основываясь на времени постройки здания
"Текущее время" - является временем, когда произошел заказ постройки, т.е. "начало постройки"
"Производство ресурсов в текущее время" - количество ресурсов, производимое в минуту всеми, уже построенными на текущий момент, заводами
"Стоимость постройки" - Стоимость постройки каждого здания
"Текущее количество ресурсов" - количество ресурсов имеющиеся на "Текущее время"

Моя задача, сделать таблицу в эксель, которая будет высчитывать производство и общее количество ресурсов на текущий момент
Расчет производства не сложен, но вот проблема с расчетом общего количества ресурсов:
Если в хронологии, заказывать новые заводы, после завершения постройки предыдущего завода, то проблем нет

Расчет в таком случае провожу так:

Например в 0:05:00 - был уже построен 1 завод, произвели заказ на постройку еще одного завода, и имелось на тот момент 110 ресурсов
В 0:08:00 был произведен заказ на постройку третьего завода,

Цель: высчитать сколько имеется ресурсов на данный момент (0:08:00)

Решение: с 0:05:00 по 0:07:30 - строился второй завод, следовательно работал лишь 1 завод, построенный ранее, добычей в 220 ресурсов в минуту
за 2 минуты и 30 секунд он произвел 550 ресурсов,
в 0:07:30 построился второй завод, следовательно до 0:08:00 работали уже 2 завода, за 30 секунд с добычей в 418 ресурсов в минуту, произвели 209 ресурсов
Следовательно с 0:05:00 по 0:08:00, т.е. за 3 минуты было произведено 759 ресурсов
Прибавляем к уже имевшим на 0:05:00 - 110 ресурсам, получаем 869 ресурсов,
вычитаем из них стоимость постройки завода 400, который был поставлен на постройку в 0:08:00, и в итоге имеем 469 ресурсов - найден ответ решения

Вот как это примерно выглядит в ексель:
(110-400) + ((0:07:30-0:05:30)*86400*(220/60)) + ((0:08:00-0:07:30)*86400*(418/60))


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


Например:
!начало постройки!завершение постройки!текущее время
30:4033:10 30:40
30:5033:20 30:50
31:0033:30 31:00
Ведь в зависимости, когда завершилась постройка NNN-ого завода, увеличивается и производство ресурсов...

Сижу вот думаю, как решить эту проблему, ну и сюда написал, а вдруг найдутся гении)
Изменено: Altinbex - 29.03.2018 08:46:38
 
много текста не осилил точно для лютых фанатов с кучей свободного времени
Лень двигатель прогресса, доказано!!!
 
Цитата
Сергей написал:
много текста не осилил точно для лютых фанатов с кучей свободного времени
Не спорю)
Кстати, вопрос на засыпку, из одного столбца будут копироваться данные во второй, по мере заполнения первого стобца, как сделать, что бы во втором столбце, эти значения автоматически выстраивались по возрастанию?)
Изменено: Altinbex - 29.03.2018 08:51:08
 
Цитата
Altinbex написал:
по возрастанию
НАИМЕНЬШИЙ()
Лень двигатель прогресса, доказано!!!
 
Цитата
Сергей написал:
НАИМЕНЬШИЙ()
Мне кажется что это не совсем подойдет, например в первом столбце будут вводить по этапно значения, причем самые различные, а во втором столбце будут копироваться значения из первого, по мере заполнения, и автоматически распределяться по возрастанию. Хотя может я не знаю скрытых условий)

Например:
Первый Второй
5 1
1 3
1234 5
6 6
123 123
3  1234
Изменено: Altinbex - 29.03.2018 09:02:49
 
Цитата
Altinbex написал:
это не совсем подойдет
а попробовать? как тест =НАИМЕНЬШИЙ($A$2:$A$7;СТРОКА(A1)) вставить в В2 и протянуть вниз
Лень двигатель прогресса, доказано!!!
 
Мне кажется, что нужно вносить в таблицу отдельной строкой время завершения строительства заводов и электростанций, но это уже ручной труд. Возможно, получится что-то автоматизировать, если в первом столбце сделать временную шкалу с делением секунд 5 или 10 и отслеживать  за счёт неё изменение добычи ресурсов и их количества постоянно. Может получиться даже нагляднее - будет видно, когда скапливается количество ресурсов, необходимое на постройку нового здания.
Я не волшебник, я только учусь.
 
Цитата
Wiss написал:
Мне кажется, что нужно вносить в таблицу отдельной строкой время завершения строительства заводов и электростанций, но это уже ручной труд. Возможно, получится что-то автоматизировать, если в первом столбце сделать временную шкалу с делением секунд 5 или 10 и отслеживать  за счёт неё изменение добычи ресурсов и их количества постоянно. Может получиться даже нагляднее - будет видно, когда скапливается количество ресурсов, необходимое на постройку нового здания.
Спасибо! решил сделать учет ресурсов не по начале постройки, а по завершению, а в отдельном столбце уже указывать, сколько накопится ресурсов после последней манипуляции через 10с, 20с, 30с, 1м, 2м, 5м, 10м, 20м и т.д...
Изменено: Altinbex - 29.03.2018 09:35:09
 
Цитата
Сергей написал:
а попробовать? как тест =НАИМЕНЬШИЙ($A$2:$A$7;СТРОКА(A1)) вставить в В2 и протянуть вниз
Спасибо! щас буду разбираться, как привязать к ним наименование построек, в случае, если в одно время завершится строительство нескольких зданий, хоть такое мало вероятно, но все же возможно)  
Изменено: Altinbex - 29.03.2018 09:37:30
 
Altinbex, Я сделаль)))

Зелёная заливка - есть деньги на электростанцию, Красная - есть деньги на завод
Красная пунктирная граница - нет энергии на ещё один завод

То есть в B49(3:10) нужно строить электростанцию, а в В67(4:40) - завод
или в 3:35 строить завод, а в 4:04 электростанцию, если при постройке завода энергия не нужна.

ВНИМАНИЕ!!! Обнаружил проблему в формулах. В столбце D формула счётзнач плохо сравнивает даты, например, во втором варианте (с электростанцией в 3:35), выработка энергии в 5:35 почему-то не увеличилась((( Наверное, пришёл коварный враг и разрушил её в процессе строительства))
Я не волшебник, я только учусь.
 
Как вариант решения - все формулы отвязать от времени, а считать в количестве тиков (временных интервалов по 5 сек), а в столбцах со временем для удобства понимания уже выводить =тики*0:00:05
Я не волшебник, я только учусь.
 
Цитата
Wiss написал:
Как вариант решения - все формулы отвязать от времени, а считать в количестве тиков (временных интервалов по 5 сек), а в столбцах со временем для удобства понимания уже выводить =тики*0:00:05
Огромное спасибо за ваш труд! Гляну что да как)
А почему время постройки, суммируется с текущим временем?
 
Чтобы определить когда построится. Используется для расчета выработки\потребления энергии и расхода ресурсов (работает плохо, нужно отвязать от времени и перевести в количество временных интервалов). Основная идея в том, что это интерактивный график развития, на котором можно в любой строчке вставить постройку нового завода/электростанции, а ёксель уже сам рассчитает когда он построится и рассчитает как изменится энергопотребление и производство ресурсов + подскажет момент когда хватает денег на новый завод/электростанцию.
Я не волшебник, я только учусь.
 
Спасибо большое за ваш огромный труд!
Но увы, постройка только во время кратное 5с, не подходит, стройка должна быть возможна в любую секунду)
Изменено: Altinbex - 29.03.2018 11:40:54
 
Да и график уж больно большой, возможно сделаю как вы предложили, но с отрезками в 1 секунду, но на отдельном листе,
использую свою изначальную таблицу, и по времени "начала постройки", буду отправлять забиваемые данный в вашу таблицу на другой лист,
а оттуда будет браться количество ресурсов и подставляться в мою таблицу,
одним словом, пользователи будут работать с более компактной таблицей, а расчеты будут проводиться на другом листе, в вашей таблице!
постараюсь реализовать задумку)
 
С 1 секундой будет очень много строк. Ловите исправленный вариант. В красной ячейке вверху задаётся количество секунд в 1 тике. Жёлтые ячейки тоже нужны (не нашёл как избавиться). По строке "количество ресурсов на начало" стоит фильтр 200, чтобы скрыть лишние строки, когда всё-равно строить нельзя. При перерасходе заливает строку красным.

P.S. Блин, аж самому понравилось. Осталось найти для чего бы такую таблицу нарисовать :-)
Изменено: Wiss - 29.03.2018 11:45:29
Я не волшебник, я только учусь.
 
Спасибо наиогромнейшее!
ща буду пытаться связать компактную таблицу с вашей, чтоб пользователям было удобнее все воспринимать)
 
////
Изменено: Altinbex - 29.03.2018 14:19:29
 
П/с: фракцию можно менять  
Страницы: 1
Наверх