Ошибка отображения времени строительства/исследования - Игровой интерфейс - Звездная Федерация

Перейти к содержимому


Ошибка отображения времени строительства/исследования


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 MAGNet

MAGNet

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 1 187 сообщений
  • ГородНовосибирск

Отправлено 24 Май 2015 - 11:37

Если добавить в очередь более одного пункта, то время каждого увеличивается во столько раз, сколько пунктов в очереди - это не правильно.
Должен быть примерно такой алгоритм:
1. после изменения очереди она сортируется по возрастанию в список (по требуемому потенциалу). при одновременном выполнении порядок очереди не важен;
2. указатель очереди выставляется на первый элемент;
3. начало цикла;
4. суммируется затребованный потенциал очереди от указателя до конца и вычисляется скорость производства для всей очереди от указателя до конца;
5. исходя из полученной скорости вычисляется время на производство по указателю очереди (в первом цикле это будет первая строчка, во втором - вторая и т.д.);
6. полученное время прибавляется всем от позиции указателя до конца списка (в первом цикле будет сложение с нулем);
7. если не достигнут конец списка, то указатель смещается на одну позицию вниз. иначе цикл заканчивается;
8. переход в начало цикла.

Думаю, что понимающему достаточно =)

Моё мнение в комментарии может не совпадать с моим мнением


#2 Федерация

Федерация

    Администратор

  • Администраторы
  • 1 586 сообщений

Отправлено 24 Май 2015 - 11:40

Не умничай!

#3 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 24 Май 2015 - 12:07

Правда, не умничай.
Я предлагал сделать очередь - очередью. я думаю, нет таких случаев, когда надо ждать одновременно 2х или 3х наук, вместо того, чтобы изучть одну и ею уже пользоваться, пока учатся другие, даже искуственно не придумать.
в очереди должен быть первый элемент всегда на 100% а все остальные на 0. после изучения первого элемента все остальные поднимаются вверх и пересчитывается время изучения.

#4 MAGNet

MAGNet

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 1 187 сообщений
  • ГородНовосибирск

Отправлено 24 Май 2015 - 13:20

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

Моё мнение в комментарии может не совпадать с моим мнением


#5 Saven

Saven

    Kornac. Прошлый ак заброшен.

  • Пользователи
  • PipPipPip
  • 647 сообщений

Отправлено 24 Май 2015 - 13:24

Костер это прошлый век) На шахты тебя зектовские!)

#6 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 24 Май 2015 - 17:38

Просмотр сообщенияMAGNet (24 Май 2015 - 13:20) писал:

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

просто трудно въехать в твой алгоритм. очередь  это обыное FIFO. изобретать ничего не надо, а время просто суммировать. и ждущие в очереди не должны получатьни одного кванта исследования, только вершина должна изучаться. тогда станет все прозрачно, понятно и предсказуемо. потому что так ка сейчас - реально нифига непонятно.  стоит 4 исследований, 2 часа, 3 часа, 4 часа и 5 часов. и абсолютно нереально сказать, через какой ДЕЙСТВИТЕЛЬНЫЙ срок будет готова последняя наука. явно не 5 часов, и не 2+3+4+5.

#7 Saven

Saven

    Kornac. Прошлый ак заброшен.

  • Пользователи
  • PipPipPip
  • 647 сообщений

Отправлено 24 Май 2015 - 17:39

Я против того, что бы рубить существующий систему очередей. Приблизительно посчитать всегда можно.

#8 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 24 Май 2015 - 18:08

Просмотр сообщенияSaven (24 Май 2015 - 17:39) писал:

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

#9 Saven

Saven

    Kornac. Прошлый ак заброшен.

  • Пользователи
  • PipPipPip
  • 647 сообщений

Отправлено 24 Май 2015 - 18:18

Просмотр сообщенияnightwind (24 Май 2015 - 18:08) писал:

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

#10 Saven

Saven

    Kornac. Прошлый ак заброшен.

  • Пользователи
  • PipPipPip
  • 647 сообщений

Отправлено 24 Май 2015 - 18:19

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

#11 Федерация

Федерация

    Администратор

  • Администраторы
  • 1 586 сообщений

Отправлено 24 Май 2015 - 19:23

Простой пример у вас изучается наука первая в очереди например 3 часа в какой-то момент времени когда она изучилась на половину понадобилось срочно изучить другую которая изучается быстро что менять очередь?

#12 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 24 Май 2015 - 21:11

Просмотр сообщенияreflection (24 Май 2015 - 19:23) писал:

Простой пример у вас изучается наука первая в очереди например 3 часа в какой-то момент времени когда она изучилась на половину понадобилось срочно изучить другую которая изучается быстро что менять очередь?
нет, можно просто сделать, почти ничего не меняя - чтобы науки, которые в очереддобавляются стояли на 0% по умолчанию, а при окончании изучения первой, продвигались вверх и новая первая становилась на 100%. при теперешней системе, если оставить науку в очереди с 0%, даже если она останется одна - она не изучится.

#13 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 24 Май 2015 - 21:13

Просмотр сообщенияSaven (24 Май 2015 - 18:18) писал:

При чем тут полетник? Пример вообще не к месту. Одновременное изучение наук мне нравится. Я могу настроить науки так, что бы излучилось почти одновременно несколько мне нужных науки. Не вижу смысла из за таймера что то менять.
про полетник к месту. почему бы и там не сделать сложную и запутанную систему, и после полчаса расчетов копалок ты сможешь настроить ,чтобы трюмы заполнились к моменту окончания топлива.
скажи мне НАХРЕНА тебе ОДНОВРЕМЕННО несколтько наук?? каких?? и чем хуже, если первая из тех, которая тебе нужна, изучится на 20 часво раньше, чем вторая, и раньше, чем 2 одновременно?

#14 Saven

Saven

    Kornac. Прошлый ак заброшен.

  • Пользователи
  • PipPipPip
  • 647 сообщений

Отправлено 24 Май 2015 - 21:52

Для тебя эта схема слишком сложна?) Вообще в большинстве случаев мне приходиться учить абсолютно равнозначные науки, но иногда меняются приоритеты. И тогда удобнее выбрать уже другую науку. Что тебе мешает взять к примеру и поставить %0 или на 5%? Возможно стоит сделать доработку в другом, после изучение одной науки, начнется учить следующия по очереди стоящий на 0%. Ну в общем выглядит так будет:
1.Геология 100%
2.Математика 0%
3.Города 0%
В следующем этапе выучена геология и становится так:
1. Математика 100%
2. Города 0%.
Тогда по-моему все будут довольны. Ну и возможно стоит добавить общий таймер. сколько всего времени уйдет на все науки в очереди. Можно к гильдии ученных привязать.Но я категорически против рушить ту систему, которая существует сейчас. Я понимаю что ты мне хочешь сказать, понимаю какие плюсы в твоей идеи. Но ты не желаешь понять, что другим твоя идея принесет больше сложностей, чем удобств. Лучше найти такой выход, который объединит все идеи. или уже ничего не менять.

#15 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 25 Май 2015 - 08:53

Saven , я же это и предложил выше) чтобы 0% второй науки превращалось в 100%, после завершения первой науки. (но если было 100% математика, 10% города и 20%химия, города не должны становиться на 100%, в общем полстрочки кода в очереди) )

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

#16 MAGNet

MAGNet

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 1 187 сообщений
  • ГородНовосибирск

Отправлено 25 Май 2015 - 14:32

про общий таймер - в моем алгоритме это будет время последнего в очереди, т.е. время будет показывать, когда закончится соответствующее исследование.
Как вы не поймете, что я предложил всего лишь другой метод расчета отображаемого времени?
Алгоритмы при этом не изменяются и, что главное!, при любом отображении времени фактически исследования ведутся ПОСЛЕДОВАТЕЛЬНО!
Попробую доступно ообъяснить:
Если у вас два исследования из которых одно тянет на час, а второе на 10 минут, то оба вы получите через 1:10, как бы вы не регулировали там проценты. И здесь чем больше разница в процентах, тем вам лучше! Если 100/100, то длинное вы всё равно получите через 1:10, а короткое будет исследоваться 20 минут. Если соотношение 0/100, то вы получите исследования в том порядке в каком они расположены в строгое время.
ПОСЛЕДОВАТЕЛЬНО - потому что получать вы их будете по очереди.
Если же два одинаковых поставить 100/100, то это ещё хуже чем последовательно, потому что.. даже не знаю как объяснить.. Это как получать зарплату не два раза в месяц, а один. То время, которое можно будет работать с первым исследованием, пока изучается второе, будет потеряно, а после вам нужно будет использовать сразу оба. А время - это невосполнимый ресурс!

Надеюсь вам понятно стало, что параллельность не несет никаких преимуществ?

Если добавить возможность "двигать" исследования в очереди без потери накопленного потенциала, то будет вообще бомба!
Вот, например, первым в очереди стоит исследование на 1000, вторым на 50; наисследовалось уже 100 и если второе передвинуть вверх, то оно сразу закроется и то, которое за 1000 снова станет первым исследованным на 50.
Доступно объяснил?

Моё мнение в комментарии может не совпадать с моим мнением


#17 Kreastr

Kreastr

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 85 сообщений

Отправлено 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 nightwind

nightwind

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 35 сообщений

Отправлено 25 Май 2015 - 19:06

Kreastr - респект бро, полностью с тобой согласен. только  давно уже надоело под каждую задачу пилить самодельную утилиту или костыль)
надеюсь реф это влепит в пхп, там полстрочки кода исправить.
а вообще хотелось бы решение с 0% ->  100% в очереди, а это юзерскриптом никак не сделаешь, разве что на серваке играть))
пысы - код хороший, годный. (куки не тащит)) ) давай зачетку.

#19 MAGNet

MAGNet

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 1 187 сообщений
  • ГородНовосибирск

Отправлено 25 Май 2015 - 19:23

Просмотр сообщенияnightwind (25 Май 2015 - 19:06) писал:

давно уже надоело под каждую задачу пилить самодельную утилиту
У меня в "прошлой жизни" была специальная таблица в ехеле накорябана, которая считала полетник до пяти перелетов.
Указывалась масса флота, тяга всех двигателей и потребление керосина;
Далее на каждый перелет указывалось расстояние, тип полета и количество груза в трюме.
Считал с точностью до единицы количество керосина и паков.
Пока отлаживал не единожды флот подвесил )))
..но зато после так офигенно было, когда у тебя 150 грузовиков прилетают после рейда по колониям, приземляются и у них в трюме НОЛЬ! Прям ваще кайф )))
Система-то подсчета проста, как палка. Надо будет и здесь запилить, но уже с веб-мордой, чтоб народ мог пользоваться.

Моё мнение в комментарии может не совпадать с моим мнением


#20 Gelion13

Gelion13

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 231 сообщений
  • ГородИваново

Отправлено 25 Май 2015 - 20:07

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




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных