Ошибка отображения времени строительства/исследования
#1
Отправлено 24 Май 2015 - 11:37
Должен быть примерно такой алгоритм:
1. после изменения очереди она сортируется по возрастанию в список (по требуемому потенциалу). при одновременном выполнении порядок очереди не важен;
2. указатель очереди выставляется на первый элемент;
3. начало цикла;
4. суммируется затребованный потенциал очереди от указателя до конца и вычисляется скорость производства для всей очереди от указателя до конца;
5. исходя из полученной скорости вычисляется время на производство по указателю очереди (в первом цикле это будет первая строчка, во втором - вторая и т.д.);
6. полученное время прибавляется всем от позиции указателя до конца списка (в первом цикле будет сложение с нулем);
7. если не достигнут конец списка, то указатель смещается на одну позицию вниз. иначе цикл заканчивается;
8. переход в начало цикла.
Думаю, что понимающему достаточно =)
Моё мнение в комментарии может не совпадать с моим мнением
#2
Отправлено 24 Май 2015 - 11:40
#3
Отправлено 24 Май 2015 - 12:07
Я предлагал сделать очередь - очередью. я думаю, нет таких случаев, когда надо ждать одновременно 2х или 3х наук, вместо того, чтобы изучть одну и ею уже пользоваться, пока учатся другие, даже искуственно не придумать.
в очереди должен быть первый элемент всегда на 100% а все остальные на 0. после изучения первого элемента все остальные поднимаются вверх и пересчитывается время изучения.
#4
Отправлено 24 Май 2015 - 13:20
вам помочь хочешь, а вы уперлись как не знаю кто..
на костре ещё меня сожгите!
Моё мнение в комментарии может не совпадать с моим мнением
#5
Отправлено 24 Май 2015 - 13:24
#6
Отправлено 24 Май 2015 - 17:38
MAGNet (24 Май 2015 - 13:20) писал:
вам помочь хочешь, а вы уперлись как не знаю кто..
на костре ещё меня сожгите!
просто трудно въехать в твой алгоритм. очередь это обыное FIFO. изобретать ничего не надо, а время просто суммировать. и ждущие в очереди не должны получатьни одного кванта исследования, только вершина должна изучаться. тогда станет все прозрачно, понятно и предсказуемо. потому что так ка сейчас - реально нифига непонятно. стоит 4 исследований, 2 часа, 3 часа, 4 часа и 5 часов. и абсолютно нереально сказать, через какой ДЕЙСТВИТЕЛЬНЫЙ срок будет готова последняя наука. явно не 5 часов, и не 2+3+4+5.
#7
Отправлено 24 Май 2015 - 17:39
#8
Отправлено 24 Май 2015 - 18:08
Saven (24 Май 2015 - 17:39) писал:
#9
Отправлено 24 Май 2015 - 18:18
nightwind (24 Май 2015 - 18:08) писал:
#10
Отправлено 24 Май 2015 - 18:19
#11
Отправлено 24 Май 2015 - 19:23
#12
Отправлено 24 Май 2015 - 21:11
reflection (24 Май 2015 - 19:23) писал:
#13
Отправлено 24 Май 2015 - 21:13
Saven (24 Май 2015 - 18:18) писал:
скажи мне НАХРЕНА тебе ОДНОВРЕМЕННО несколтько наук?? каких?? и чем хуже, если первая из тех, которая тебе нужна, изучится на 20 часво раньше, чем вторая, и раньше, чем 2 одновременно?
#14
Отправлено 24 Май 2015 - 21:52
1.Геология 100%
2.Математика 0%
3.Города 0%
В следующем этапе выучена геология и становится так:
1. Математика 100%
2. Города 0%.
Тогда по-моему все будут довольны. Ну и возможно стоит добавить общий таймер. сколько всего времени уйдет на все науки в очереди. Можно к гильдии ученных привязать.Но я категорически против рушить ту систему, которая существует сейчас. Я понимаю что ты мне хочешь сказать, понимаю какие плюсы в твоей идеи. Но ты не желаешь понять, что другим твоя идея принесет больше сложностей, чем удобств. Лучше найти такой выход, который объединит все идеи. или уже ничего не менять.
#15
Отправлено 25 Май 2015 - 08:53
Ну и общий таймер нужен. наставил на ночь 10 наук - никогда в жизни в уме не прикинешь, изучится за ночь или до обеда будет
#16
Отправлено 25 Май 2015 - 14:32
Как вы не поймете, что я предложил всего лишь другой метод расчета отображаемого времени?
Алгоритмы при этом не изменяются и, что главное!, при любом отображении времени фактически исследования ведутся ПОСЛЕДОВАТЕЛЬНО!
Попробую доступно ообъяснить:
Если у вас два исследования из которых одно тянет на час, а второе на 10 минут, то оба вы получите через 1:10, как бы вы не регулировали там проценты. И здесь чем больше разница в процентах, тем вам лучше! Если 100/100, то длинное вы всё равно получите через 1:10, а короткое будет исследоваться 20 минут. Если соотношение 0/100, то вы получите исследования в том порядке в каком они расположены в строгое время.
ПОСЛЕДОВАТЕЛЬНО - потому что получать вы их будете по очереди.
Если же два одинаковых поставить 100/100, то это ещё хуже чем последовательно, потому что.. даже не знаю как объяснить.. Это как получать зарплату не два раза в месяц, а один. То время, которое можно будет работать с первым исследованием, пока изучается второе, будет потеряно, а после вам нужно будет использовать сразу оба. А время - это невосполнимый ресурс!
Надеюсь вам понятно стало, что параллельность не несет никаких преимуществ?
Если добавить возможность "двигать" исследования в очереди без потери накопленного потенциала, то будет вообще бомба!
Вот, например, первым в очереди стоит исследование на 1000, вторым на 50; наисследовалось уже 100 и если второе передвинуть вверх, то оно сразу закроется и то, которое за 1000 снова станет первым исследованным на 50.
Доступно объяснил?
Моё мнение в комментарии может не совпадать с моим мнением
#17
Отправлено 25 Май 2015 - 14:38
function getTotalResearchTime () { var Percents = $("div[id^='WndScience_ss_'] > div > input:not([name*='new']):not([class*='dhx'])"); var i = 0; var total = 0; var totalprct = 0; $("td[id^='WndScience_sst']").each(function(){ var prct = parseFloat(($($("div[id^='WndScience_ss_'] > div > input:not([name*='new']):not([class*='dhx'])")[i])).attr("value")); total = total + $(this).attr("sec") * prct; totalprct = totalprct + prct; i++; }); $("td:contains('Текущие исследования')").html("Текущие исследования ("+sec_to_string(total/totalprct)+")"); $("div.dhtmlx_wins_title:contains('Исследования')").html("Исследования: всего в очереди "+(i)+" ("+sec_to_string(total/totalprct)+")"); setTimeout(getTotalResearchTime, 5000); };
#18
Отправлено 25 Май 2015 - 19:06
надеюсь реф это влепит в пхп, там полстрочки кода исправить.
а вообще хотелось бы решение с 0% -> 100% в очереди, а это юзерскриптом никак не сделаешь, разве что на серваке играть))
пысы - код хороший, годный. (куки не тащит)) ) давай зачетку.
#19
Отправлено 25 Май 2015 - 19:23
nightwind (25 Май 2015 - 19:06) писал:
Указывалась масса флота, тяга всех двигателей и потребление керосина;
Далее на каждый перелет указывалось расстояние, тип полета и количество груза в трюме.
Считал с точностью до единицы количество керосина и паков.
Пока отлаживал не единожды флот подвесил )))
..но зато после так офигенно было, когда у тебя 150 грузовиков прилетают после рейда по колониям, приземляются и у них в трюме НОЛЬ! Прям ваще кайф )))
Система-то подсчета проста, как палка. Надо будет и здесь запилить, но уже с веб-мордой, чтоб народ мог пользоваться.
Моё мнение в комментарии может не совпадать с моим мнением
#20
Отправлено 25 Май 2015 - 20:07
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных