AlexSpl писал(а):
Правильное наблюдение заключается в том, что недели/месяцы существ воздействуют только на прирост именно указанных существ, никак не затрагивая их апдаунгрейды.
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Недели и МесяцыAlexSpl писал(а): Правильное наблюдение заключается в том, что недели/месяцы существ воздействуют только на прирост именно указанных существ, никак не затрагивая их апдаунгрейды. |
Re: Недели и МесяцыИнтересный и животрепещущий вопрос в тему: в какой момент выбирается тип наступающей недели?
Играл турнир. Строю на 7 день Чемпионов. Наступает неделя Кавалеристов. Соответственно откатываю постройку улучшенного жилища, и всё равно наступает неделя Кавалеристов. Отсюда возникает ряд предположений: 1. Рэндом детерминированный и зависящий не от того, что я менял перед окончанием хода. 2. Будущая неделя выбирается при ещё при переходе хода на 6 день. 3. Будущая неделя выбирается при наступлении текущей недели. 4. Вся цепочка недель может быть вычислена, исходя из некоторого начального значения сида при старте карты. А как на самом деле? И, если возможно что-то спрогнозировать (варианты 2-4), то хорошо бы это добавить в Оракул |
Re: Недели и МесяцыDeathLust писал(а): Хотя это могло быть, конечно, проявление зацикливания рэндома при повышении уровня у компьютерного героя. |
Re: Недели и МесяцыЦитата: После хода последнего из игроков в 7-й день недели. Цитата: 1. Рэндом детерминированный и зависящий не от того, что я менял перед окончанием хода. 2. Будущая неделя выбирается при ещё при переходе хода на 6 день. 3. Будущая неделя выбирается при наступлении текущей недели. 4. Вся цепочка недель может быть вычислена, исходя из некоторого начального значения сида при старте карты. Предсказать всю цепочку недель и месяцев в подавляющем большинстве случаев нельзя. Какая неделя или месяц наступит, зависит от последнего действия игрока, которое требует броска игральной кости. Повторение возникает в том случае, если такое действие оказалось повышением уровня какого-нибудь героя. Если ни один из героев не повышает уровень в 7-й день, то, как правило, можно сгенерировать какую угодно неделю или месяц. |
Re: Недели и МесяцыСаша, огромное спасибо за материал, очень интересно.
Когда я несколько лет назад исследовал эту тему, пытался помимо прироста рассчитать алгоритм выкупа компьютером юнитов. Напомнило мне это известные задачи про оптимальные наборы монетами нужной суммы. Вроде как смутно припоминаю, что что-то то ли в интегральном то ли в дифференциальном исчислении когда-то проходил, но был 1988 год и в голове было много всего помимо этого ... В общем, я так и не сформулировал алгоритм выкупа. Могу сказать отправные точки: 1. Компьютер крайне редко скупает гигантов. 2. Компьютер скупает титанов в последнюю очередь, причём зачастую у него есть деньги на частичную (может это и ключевой момент) их скупку. 3. Компьютер скупает чёрных драконов в последнюю очередь. 4. Компьютер скупает крестьян в последнюю очередь. 5. Компьютер довольно редко скупает зелёных и красных драконов. 6. Возможно (ничем не подтверждено реально), тип поведения компьютера влияет на процессы скупки. 7. Есть гипотеза, что компьютер хочет по возможности скупать отряды целиком (возможно, это связано с особенностью прироста юнитов в замках компа). Думаю, этот вопрос интересовал и тебя. Напиши, что думаешь ... |
Re: Недели и МесяцыПришёл к выводу, что материал по неделям и месяцам является самым интересным как минимум за последние 2 года. Прочитал его 5 (Пять) раз.
|
Re: Недели и МесяцыПопытка систематизировать всё то, что собрал и описал AlexSPl, ну и немножко я.
Считаю, что эта информация должна попасть в один новый раздел справочника. Порядок подачи материала и поясняющий текст согласуем, пока просто соберу всё вместе. Отряды нейтральных существ-охранников при начале игры на карте имеют численность, указанную в таблице. В первый день каждой новой недели численность охранников увеличивается примерно на 1/7. Точная формула Nnew=N+[N/7]+I, где I=1 с вероятностью P(I=1)=N%7, и I=0 иначе. Прирост уже имеющихся отрядов охранников не зависит от типа недели/месяца.(??) Как происходит еженедельный прирост существ в жилищах городов и замков? Прирост Growth в жилище равен: Growth = [[(BaseGrowth + Well + Grower) * NeutralTownMod] * CompMod] + WeekBonus, где BaseGrowth - базовый прирост, Well - бонус Колодца (Well = 2, если Колодец построен, иначе 0), Grower - бонус генератора существ 1-го уровня (Grower = 8 для всех жилищ 1-го уровня, в случае если отстроен генератор, иначе 0), NeutralTownMod = 0.5 для нейтральных городов и замков, иначе равен 1, CompMod - модификатор прироста для компьютерного игрока (в случае если число существ в жилище равно 0, т.е. комп выкупил всех существ в жилище до наступления новой недели, CompMod = 1.2 на сложности игры "Тяжелая", CompMod = 1.32 на сложности "Эксперт", CompMod = 1.44 на сложности "Невозможная", иначе равен 1), WeekBonus - бонус недели существ (WeekBonus = 5, если наступила неделя существа в жилище, иначе 0). Примеры 1. Найти прирост крестьян в нейтральном городе без Колодца и Фермы: Growth = [[(12 + 0 + 0) * 0.5] * 1] + 0 = (или проще) [12 / 2] = 6 2. Найти прирост крестьян в замке компьютерного игрока с отстроенным Колодцем и Фермой на сложности "Невозможная" и при условии, что комп выкупил всех крестьян до наступления новой недели, которая оказалась неделей крестьян: Growth = [[(12 + 2 + 8) * 1 ] * 1.44] + 5 = 36 С неделями всё то же самое, что и в Героях 1, поэтому просто продублирую пост из "Интересных фактов" с небольшими изменениями. Т.к. формулу недельного прироста я привёл выше, то не буду тратить время на расчёт табличек с бонусами прироста для компьютерных игроков. Если будет соответствующий раздел в Справочнике, посчитать не составит труда. Итак. Недели в игре Герои Меча и Магии 2 Относится к 2-4 неделе каждого месяца, верно? 1. Недели, когда ничего не происходит Сообщение: "Астрологи объявляют неделю [название недели]. Население всех жилищ возросло." Вероятность: 75% Всего существует 15 недель, когда ничего не происходит: Белки, Кролика, Суслика, Барсука, Крысы, Орла, Горностая, Ворона, Мангуста, Собаки, Муравьеда, Ящерицы, Черепахи, Дикобраза, Кондора. Они наступают с одинаковой вероятностью 1/20. Эффект: нет. 2. Недели, когда прирост определённых монстров увеличивается Сообщение: "Астрологи объявляют, что этой неделе покровительствует сила [название существа в родительном падеже мн. ч.]. Популяция [название существа в родительном падеже мн. ч.] +5. Население всех жилищ возросло." Вероятность: 25% Любая из таких недель наступает с одинаковой вероятностью 1/228 (25% * 1/57 по числу замковых существ). Эффект: Прирост существ в жилищах, за исключением внешних, увеличивается на 5. Месяцы в игре Герои Меча и Магии 2 1. Месяцы, когда ничего не происходит Сообщение: "Астрологи объявляют месяц [название месяца]. Население всех жилищ возросло." Вероятность: 50%. Всего существует 10 месяцев, когда ничего не происходит: Кузнечика, Муравья, Стрекозы, Паука, Бабочки, Шмеля, Цикады, Земляного червя, Шершня, Жука. Они наступают с одинаковой вероятностью 1/20. Эффект: нет. 2. Месяцы, когда популяция определённых монстров удваивается Сообщение: "Астрологи объявляют, что этому месяцу покровительствует сила [название существа в родительном падеже мн. ч.]. Популяция [название существа в родительном падеже мн. ч.] удваивается! Население всех жилищ возросло." Вероятность: 40%. Популяция удваивается только для следующих монстров: Крестьянин, Тролль, Гном, Рух, Огр, Друид, Вампир, Волк, Кентавр, Горгулья, Единорог, Лич. Любой из этих месяцев наступает с одинаковой вероятностью 1/30. Эффект: 1. Количество существ в жилищах, за исключением внешних, удваивается. Прирост существ во внешних жилищах происходит обычным образом. Число существ, чья популяция удваивается, рассчитывается следующим образом: – сначала происходит обычный прирост существ в жилище; – затем количество существ в жилище удваивается; Пример: Вопрос: На конец месяца имеем 54 крестьянина. В замке построены Колодец и Ферма. Сколько крестьян будет доступно для найма в жилище, если наступает месяц "крестьян"? Ответ: (54 + 12 (базовый прирост) + 2 (Колодец) + 8 (Ферма)) * 2 = 152 (крестьянина). 2. На карте случайным образом появляются новые отряды нейтралов, чья популяция удваивается (см. ниже). Вероятность появления нового отряда нейтралов зависит от общего числа клеток на карте, на которых они могут появиться (например, понятно, что они не могут появиться на воде или на занятой клетке). Вероятность появления новых нейтралов для каждой такой клетки равна 1/361. Вероятность, что новый отряд нейтралов окажется лояльным равна 20/101. Численность новых нейтралов, появляющихся на карте при наступлении месяца Численность нейтралов в новом отряде есть сумма двух случайных чисел из следующих диапазонов (совпадают с числом существ в отрядах при начале игры):
Например, численность единорогов в новом отряде при наступлении одноимённого месяца будет равна [8 - 15] + [8 - 15] = [16 - 30]. 3. Месяц чумы Сообщение: "Астрологи объявляют месяц ЧУМЫ! Население всех жилищ уменьшилось вдвое." Вероятность: 10%. Эффект: 1. Прироста существ в замках и городах не происходит. 2. Количество существ во всех жилищах, за исключением внешних, уменьшается вдвое. На самом деле, прирост сначала происходит как обычно: Growth = [(BaseGrowth + Well + Grower) * CompMod] В месяц чумы, от этого числа отнимается прирост, но уже без бонуса для компа! Для игрока-человека CompMod = 1, и всё выглядит так, как будто прироста нет, а число существ в жилищах уполовинилось: (BaseGrowth + Well + Grower) - (BaseGrowth + Well + Grower) = 0. Для компа эта разность не равна 0: (BaseGrowth + Well + Grower) * CompMod - (BaseGrowth + Well + Grower) > 0. Это значит, что в пустые жилища компьютерного игрока немного новых существ придут даже в месяц чумы! Давайте рассмотрим следующий реальный случай. Играем на сложности "Невозможная" (CompMod = 1.44). В замке компа отстроены гоблины и волки, Колодец (+2) и Мусорная куча (+8). Все волки выкуплены, а вот 1 гоблина комп оставил. Что происходит, когда наступает месяц чумы? 1. Находим прирост гоблинов. Так как гоблины выкуплены не полностью, то CompMod = 1 и прирост Growth = 10 + 2 + 8 = 20. Итого гоблинов: 1 (невыкупленный) + 20 (прирост) = 21. При наступлении месяца чумы прирост вычитается: 21 - 20 = 1 (т.е. идёт "откат" прироста), и оставшееся количество существ делится нацело на 2: [1 / 2] = 0. В итоге у компа гоблинов нет. 2. Находим прирост волков. Так как волки полностью выкуплены, то CompMod = 1.44 и прирост Growth = [(5 + 2) * 1.44] = 10 (волков). При наступлении месяца чумы прирост вычитается, но уже без модификатора CompMod, т.е. остаётся 10 - 7 = 3 волка, которые и уполовиниваются: [3 / 2] = 1! В итоге у компа не остаётся ни одного гоблина, зато появляется новый волк О том, как формируется гарнизон нейтральных городов и замков и как происходит прирост существ в таком гарнизоне Начальное формирование гарнизона и еженедельное его пополнение происходит почти одинаково. Если гарнизон нейтрального города/замка не был задан вручную, в него попадут 4 отряда неулучшенных существ 1-4 уровня этого города/замка. Например, для замка Рыцарей это будут Peasants, Archers, Pikemen и Swordsmen. Отряды занимают слоты гарнизона слева направо. Тип существ в отрядах может повторяться, отряды одинаковых существ объединяются в один слот. Например, гарнизон замка может состоять только из одного большого отряда крестьян (все 4 отряда оказались отрядами крестьян и объединились). Пополнением назовём отряд неулучшенных существ 1-5 уровня этого города/замка, который приходит в гарнизон. Базовый размер пополнения (BaseGrowth) зависит от уровня существ: 1-й уровень: 8 - 15 2-й уровень: 5 - 7 3-й уровень: 3 - 5 4-й уровень: 1 - 3 5-й уровень: 1 Размер пополнения увеличивается в зависимости от длительности игры, а именно на 1 существо за каждые 20 дней игры. Нетрудно догадаться, что бонус начинает действовать только с 4-й недели (1-4-1 = 22-й игровой день). Если обозначить пополнение гарнизона как Growth, а порядковый номер дня, в который происходит пополнение, - DayNumber, то Growth = BaseGrowth + [DayNumber / 20]. Каждую неделю в гарнизон приходит один или два отряда. Второй отряд придёт с вероятностью 80/101 для замка и 40/101 для города. Оба новых отряда могут состоять из одних и тех же существ. Новые отряды присоединяются к старым. Если 4-й уровень существ может быть в гарнизоне нейтрального города/замка с самого начала, то 5-й уровень существ начинает пополнять ряды защитников гарнизона далеко не сразу. С течением игрового времени вероятность того, что пополнение будет состоять из низкоуровневых отрядов (1-4-й уровень), падает. Соответственно, растёт вероятность высокоуровневого пополнения (5-й уровень). Вероятности равны (Tier - уровень существ): P[Tier 1] = 5 / (15 + [DayNumber / 10]) P[Tier 2] = 5 / (15 + [DayNumber / 10]) P[Tier 3] = 3 / (15 + [DayNumber / 10]) P[Tier 4] = 2 / (15 + [DayNumber / 10]) P[Tier 5] = [DayNumber / 10] / (15 + [DayNumber / 10]) Так, при формировании гарнизона (1-1-1, DayNumber = 1) и для первого пополнения в начале второй недели (1-2-1, DayNumber = 8) имеем: P[Tier 1] = 5/15 P[Tier 2] = 5/15 P[Tier 3] = 3/15 P[Tier 4] = 2/15 P[Tier 5] = 0 Первое пополнение 5-го уровня появится не раньше 1-3-1 (DayNumber = 15): P[Tier 1] = 5/16 P[Tier 2] = 5/16 P[Tier 3] = 3/16 P[Tier 4] = 2/16 P[Tier 5] = 1/16 Как видно, при очень долгой игре гарнизон будет пополняться практически только отрядами 5-го уровня. Недели и месяцы прироста существ на размер гарнизона не влияют. Предполагаемый порядок: нейтральные охранники, гарнизоны, общая формула прироста в замках, недели, месяцы. Ещё нужно на видное место поместить ссылку на "объекты на карте приключений" (прирост в домиках). Отличия от Героев 1 предлагаю отмечать по ходу, а не писать отдельным списком. Проверьте, пожалуйста, то, что я написал красным. Вопросы, предложения? |
Re: Недели и МесяцыЦитата: Из опыта могу сказать, что не зависит. Я не встречал. Да и картостроителям было бы неудобно. Но всегда можно проверить Цитата: Верно. Наступление нового месяца вытесняет все события, связанные с наступлением новой недели, кроме прироста существ. Цитата: Nnew=N+[N/7]+I, где I=1 с вероятностью P(I=1)=N%7, и I=0 иначе. P(I=1)=N%7 - неверно. По определению 0 <= P <= 1. Остаток же от деления на 7 может принимать значения из диапазона [0; 6]. Правильно так: P[Bonus = 1] = N % 7 / 7. Но игроки, которым синтаксис языка C незнаком, вряд ли догадаются, что символ "%" - это остаток от деления нацело. Поэтому я упростил: P[Bonus = 1] = N % 7 / 7 = (N - 7 * [N/7]) / 7 = N/7 - [N/7] = {N/7}, где {} - дробная часть. Да и потом, N % 7 / 7 плохо хотя бы потому, что первая операция целочисленная, а вторая - нет. Абзац про особенности прироста у компьютерного игрока в месяц чумы лучше спрятать под спойлер, т.к. технически - это описание бага. Сравнение с Героями 1 можно и не делать, если добавить в соответствующий раздел по Героям 1 аналогичную информацию (прирост существ, гарнизон и т.п.). Но можно добавить под спойлер абзац из данной темы с кратким сравнением недель и месяцев в первой и второй частях Героев, а также событий их сопровождающих. |
Re: Недели и МесяцыAlexSpl писал(а): Вторая - тоже вполне себе целочисельная: деление без остатка, она же div. И все-таки, мне кажется, что Сишная формула более понятная хоть кому-то. |
Re: Недели и МесяцыВ том-то и дело, что деление - самое что ни на есть обычное И, насколько мне известно, C в школе обычно не изучают, а что такое [] и {} должны знать все, кто не прогуливал уроки математики.
|
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2