[ГАЙД] Как собирать коллекцию в Hearthstone

Способов принуждения у меня нет, соответственно, ты сам себя заставил написать это. Следовательно, ты это захотел и обманываешь себя.

А теперь объявление: я ещё раз проверил всё и внёс изменения согласно уточнению от bySalamandra. Оказывается, золотые карты всё-таки учитываются отдельно от обычных. Также исправлены некоторые опечатки, внесены корректировки в описании действий в таблицах и уточнено количество карт во всех наборах с учётом акционных.

Уточнение основано на твите от разработчика Celestalon.

Обращение к MVP: пожалуйста закрепите тему в FAQ в разделе с описанием коллекции.

2 лайка

Спасибо за таблицу! Она крутая!

Лайков: 1

Пожалуйста. Я с радостью приму пожелания по дополнению и уточнению, а также отвечу на вопросы по методике расчёта.

Ну это такой спорный гайд по сбору “обычной коллекции”, который к тому же идет в ущерб по сбору золотой. Хотя каждый сам для себя расставляет приоритеты.

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

Лайков: 1

Приветствую! Перво-наперво, огромное спасибо за подсчёты. Тема офигенная. С удовольствием помогу в сборе статистике, правда, паков я собираюсь открыть немного, но всё же… Однако у меря есть пара вопросов/замечаний.

  1. Я правильно поняла, при открытии 55 паков у меня будут повторки, сиречь пыль на нужные но не выпавшие карты?
  2. В шаблоне таблицы напротив первого пака не пустые строчки, которые надо заполнить, а наименования редкости карт. Не мог бы ты исправить?
  3. Есть вопросы по заполнению таблицы. С редкостью ясно, просто пишем количество. А что насчёт золотых карт? Как этот столбец заполняется, если, скажем, мне в паке выпала золотая редкая и золотая легендарная?
  4. Что за стоимость карт на сборку и стоимость карт на распыление?
  1. Да, это повторки обычных карт. С них и будет падать пыль. Как я понял, ты имеешь в виду свежий аддон. Так как обычные карты до сбора полного сета падают последовательно, то они все соберутся за 52 * 2 / 4 = 26 паков.
  2. Это образец для заполнения.
  3. Я вручную выделяю золотую карту жёлтым фоном в ячейке. Всё заполнение вручную, счёт тоже.
  4. Стоимость карт на сборку - стоимость сборки из пыли всех карт, которые были получены из паков. Стоимость на распыление - количество пыли, которое будет получено при возможном распылении всех полученных карт. Я писал это вручную.
Лайков: 1
  1. Да, именно так. Просто пытаюсь решить для себя, сколько в новых условиях откладывать золота на аддон. Спасибо.
    2, 3. А, то есть заполнять надо не цифрами, а названием редкости, выделяя его жёлтым, если карта выпало золотой. Верно?
  2. Спасибо, поняла.
    Upd. Meh, форматирование шалит. Надеюсь, понятно на что я отвечала. :sweat:

Я пишу названия карт и выделяю их цветом редкости (для обычных оставляю чёрный).

Вот ссылка на мою статистику из Ульдума для более детального примера: https://yadi.sk/i/TlyxK4qBPu035A.

Лайков: 1

Вау. :money_mouth_face: Хорошо, механизм заполнения ясен. :ok_hand:
Ещё я вспомнила, что забыла спросить, что значит Маркеры получения особых карт. :unamused:

Паки, где получены леги и эпики. В примечаниях это написано. И если в одном паке лега и эпик, то я ставил зелёный маркер. Эти маркеры помогали мне отслеживать частоту выпадения этих карт.

Лайков: 1

Не могу зайти в бнет. Очередь на 8 часов.

mawile, конечно, прав. Без работы с практической статистикой не обойтись. Проблема в том что мы никак не можем узнать сколько именно коммонок и рарок в среднем падает из паков во-первых. А во-вторых у нас также нет официальных данных по пити-таймерам золотых карт, поэтому предельно доступно точно учесть их дроп можно тоже только на основе практической статистики.

На старом форуме была тема, где три чела (включая меня) делали моделирование по сбору золотой и обычной коллекции для произвольного набора карт (набор определяется четырьмя числами - число коммонок, рарок, эпиков и лег). В качестве отправной точки моделирования мы брали практическую статистику вскрытия максимально большого количества паков (чем больше выборка, тем точнее результат).

Например, так (беру цифры из своих старых записей, они примерно правильные):
18234 паков было вскрыто
63728 коммонок выпало
19604 рарок
3819 эпиков
982 лег
1390 золотых коммонок
1299 золотых рарок
254 золотых эпиков
94 золотых лег

Дальше пишем функцию вскрытия пака по новым правилам, которая будет в качестве веса редкостей брать оные цифры. А редкости уже заполняем конкретными картами набора так, чтобы они не повторялись до тех пор, пока не будут заполнены все слоты соответствующей редкости в наборе.

Не забываем также учесть следующие моменты:

  1. Если мы ставим себе целью моделирование сбора только обычной коллекции, то золотые лишние копии распыляем приоритетно.
  2. Золотые копии коммонок распыляем безусловно (даже если у нас ещё нету ни одной такой незолотой коммонки), потому что за распыл золотой коммонки дают 50 пыли, а крафт обычной стоит 40. 10 пыли из “ниоткуда” немного ускорит сбор сета, а коммонка всё равно выпадет.
  3. Все лишние копии распыляем виртуально. То есть не пылим их на самом деле, но ведём точный подсчёт пыли, в них содержащейся.
  4. Последним вскрытым паком станет тот, после которого запас пыли из предыдущего пункта окажется достаточным для докрафта 100% недостающих карт.
  5. Не забываем учесть, что в первых десяти паках падает гарантированная лега. Я, кстати, не знаю с наскока как это запрограммировать. Это может оказаться сложной задачей.
  6. Можно очень сильно напортачить с условной вероятностью при программировании функции дропа карт. Тут коротко я не смогу пояснить, у меня для этого мозгов мало. Правильный результат даёт такая функция дропа карт из пака, которая вообще не учивает ничего: ни предельно допустимое число копий карты в одном паке, ни предельно допустимое число коммонок в паке. То есть в моделируемых паках МОЖЕТ быть 5 одинаковых коммонок, например. В условиях новых правил дропа с этим надо детально разбираться при тестировании функции.

Ну а дальше просто:

  1. Собираем 100000 наборов.
  2. Каждый раз считаем число паков, которое потребовалось на 100% заполнение набора.
  3. Выбираем из 100000 самое максимальное число (нам дико не пёрло), самое минимальное (мы боги удачи) и среднее арифметическое (главное из всех).

При старых правилах дропа удачные или неудачные заполнения набора возникали из-за двух факторов - как часто нам падали повторы (чем чаще, тем хуже) и среднее число пыли с паков (то есть как часто нам падали более ценные по пыли карты - эпики, леги и золотые карты).

При новых правилах дропа первый фактор полностью исключается, поэтому значение будет иметь только второй.

2 лайка

Спасибо большое за отклик. Теперь отвечу на твоё сообщение.

mawile , конечно, прав. Без работы с практической статистикой не обойтись. Проблема в том что мы никак не можем узнать сколько именно коммонок и рарок в среднем падает из паков во-первых. А во-вторых у нас также нет официальных данных по пити-таймерам золотых карт, поэтому предельно доступно точно учесть их дроп можно тоже только на основе практической статистики.

Всё то, что ты написал, это, конечно, хорошо и имеет смысл, но только при наличии статистики. А я именно потому, что статистики не было, на основе изложенных правил решил пойти методом вычёркивания из списка. Изложу его ещё раз, он основан на опубликованных правилах выпадения карт:

Каждый набор содержит 5 карт минимально гарантированного качества: 4 обычные и 1 редкую. Но при этом они могут замениться случайным образом на эпические и легендарные (как правило, заменяются не более 1 или 2 карт). В игре есть так называемый «таймер жалости», гарантирующий выпадение эпической карты в каждом 10-м наборе одного выпуска и легендарной карты в каждом 40-м наборе одного выпуска. Но для первых 10 наборов выпуска есть и гарантия выпадения дополнительной легендарной карты. Таким образом, вскрыв 50 первых наборов одного выпуска, можно наверняка получить 5 эпических и 2 легендарные карты. С учётом ограничения на выпадение любых повторных карт, введённого с 26 марта 2020 г., мы имеем такую картину:

  1. когда мы получаем карту любым способом, это учитывается игрой;

  2. обычные карты выпадают последовательно, пока не будут в полном комплекте (2 экземпляра каждой карты);

  3. редкие карты выпадают по тому же принципу, но в меньшей интенсивности;

  4. для эпических и легендарных карт работают «таймеры жалости», но без повторов;

  5. когда получение всех карт учтено, могут выпадать повторные;

  6. золотые карты учитываются отдельно от не золотых (спасибо bySalamandra за уточнение, основанное на твите от разработчика Celestalon ).

Имея эти критерии можно подсчитать приблизительное количество наборов, необходимое для сборки полного выпуска. Вот формулы для подсчёта гарантированного получения всех карт каждого вида редкости:

Обычные: кол-во наборов = (кол-во карт * 2) / 4. Даст приблизительный результат, т. к. некоторое количество обычных карт случайным образом замещается другими (в том числе золотыми).

Редкие: кол-во наборов = (кол-во карт * 2). Тоже приблизительный результат по вышеуказанной причине.

Эпические: кол-во наборов = (кол-во карт * 2) * 10.

Легендарные: кол-во наборов = (кол-во карт * 40) - 30.

Действие “-30” в последней формуле для того, чтобы учесть гарантированную легу в первых 10 наборах выпуска.

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

У нас собраны все обычные и редкие карты, есть 16 эпических и 2 легендарные карты (с учётом 2 гарантированных легендарных карт в первых 50 наборах). Нужны ещё 20 эпических и 30 легендарных карт, а для них совместно – 54800 пыли (8000 на эпические и 48000 на легендарные). Для них надо 1400 наборов. Это очень много, но из них выпадут эпические и легендарные карты. Их, в свою очередь, тоже надо учесть. Мы получаем рекурсию:

Далее она расписана в первом посте, повторяться лишний раз не буду. Затем я вывел два возможных варианта дальнейших действий:

  1. вычислить среднее арифметическое нужного количества наборов, взяв все варианты их количества в цепочке, получаем 371 шт.;

  2. вручную пройти по цепочке и оценить, какого количества наборов и пыли примерно хватит для сборки оставшихся карт с учётом того, что карты нужной редкости продолжают выпадать. Для этого надо все карты из этих наборов перевести в пыль и сравнить с нужным её количеством, получаем наиболее оптимальное число 491 набор при дополнительных 49 эпических и 12 легендарных картах, а также 17200 пыли, что находится примерно между 8 и 9 шагами рекурсии.

Итоговый результат будет довольно большим, и для приблизительного получения более реалистичного (по среднему выпадению) можно его разделить на два и дополнительно прибавить от 1/4 до 1/3 от исходного числа.

Из этих подсчётов можно сделать такой вывод: чаще всего для сборки полного выпуска достаточно получить из наборов приблизительно 3/4 всех карт, а оставшуюся четверть можно собрать из пыли, получившейся от распыления лишних карт.

Там же, в первом посте, есть ссылка на таблицу excel с автоматическим расчётом количества наборов на основе вводимого количества карт и кое-какими смежными выкладками ( https://yadi.sk/i/tfId31SCpUFPBQ). В этом и нужна твоя помощь, чтобы ты проверил этот метод и изложил своё мнение о нём. Можно ли его улучшить? Мне кажется, что можно, но я не знаю точно. как именно.

Кстати говоря, этот метод решает упомянутую тобой проблему чисто статистического учёта:

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

Я для этого отнимаю от количества наборов, нужных для открытия легендарных карт, 30 штук.

Также прокомментирую твои другие замечания:

Если мы ставим себе целью моделирование сбора только обычной коллекции, то золотые лишние копии распыляем приоритетно.

Да, сбор обычной коллекции и является целью, на это я и ориентировался изначально.

Золотые копии коммонок распыляем безусловно (даже если у нас ещё нету ни одной такой незолотой коммонки), потому что за распыл золотой коммонки дают 50 пыли, а крафт обычной стоит 40. 10 пыли из “ниоткуда” немного ускорит сбор сета, а коммонка всё равно выпадет.
Все лишние копии распыляем виртуально. То есть не пылим их на самом деле, но ведём точный подсчёт пыли, в них содержащейся.

Золотые карты учитываются отдельно от не золотых (спасибо bySalamandra за уточнение, основанное на твите от разработчика Celestalon). Все незолотые мы получим в любом случае.

Можно очень сильно напортачить с условной вероятностью при программировании функции дропа карт. Тут коротко я не смогу пояснить, у меня для этого мозгов мало. Правильный результат даёт такая функция дропа карт из пака, которая вообще не учитывает ничего: ни предельно допустимое число копий карты в одном паке, ни предельно допустимое число коммонок в паке. То есть в моделируемых паках МОЖЕТ быть 5 одинаковых коммонок, например. В условиях новых правил дропа с этим надо детально разбираться при тестировании функции.

Как мне кажется, можно сделать так:

  1. Сначала высчитать общее количество наборов с учётом получающейся из них пыли;
  2. потом проверить каждый получившийся набор на соответствие правилам и исправить допущенные грубые ошибки (например, набор с одними обычными картами или набор из одних легендарных), принудительно заменив такие “аномальные” наборы наборами с 4 обычными и 1 редкой картой;
  3. проверить соответствие “имеющихся” карт необходимому количеству в выпуске и в случае избытка и/или недостатка скорректировать проверяемое количество согласно правилам;
  4. вновь проверить получившееся количество наборов и карт на достаточность до сборки полного выпуска (переведя всё в пыль и сравнив с количеством пыли, нужным для сборки всех карт с нуля);
  5. если наборов вновь много или мало, добавить “недостающие” или убрать “лишние”, придерживаясь правил;
  6. и наконец, когда точное количество наборов и их состав посчитаны, можно присвоить картам названия, следя, чтобы они повторялись не более двух раз (для легендарных повторов вовсе не должно быть).
Лайков: 1

Коротко говоря, твой путь имеет такие даже не недостатки, а скорее неудобства при реализации:

  1. Надо программировать формулы на каждом шагу, это трудоёмко.
  2. Ты манипулируешь оценками сверху (то есть пити-таймерами), а потом очень грубо делишь пополам, что сильно снижает реальную точность.

Если бы делал я, то я бы отказался делать по твоему пути, потому что:

  1. Я потратил бы больше усилий на реализацию.
  2. Реализация оказалась бы очень громоздкой.
  3. Конечная достоверность (точность) полученных оценок была бы несколько низковатой, по всей видимости.

Поэтому лучше, имхо, написать полноценное моделирование и получить точность строго коррелирующую с исходной статистикой.

Одновременно мы получаем универсальный алгоритм, меняя всего 4 входящих цифры (число коммонок, рарок, эпиков и лег в наборе) в котором, мы сможем мгновенно выдавать среднее арифметическое нужного числа паков на 100% заполнение любого по составу набора.

Но это программирование, да. Экселя никак не хватит.

На самом деле я хочу попробовать когда-нибудь поднять свой код и переделать его под новые правила дропа. Но хз когда у меня руки дойдут.

Лайков: 1

В том же экселе мне не составило труда сделать расчёты. Конечно, с одной стороны, они грубые, потому что основаны на наихудшем сценарии выпадения карт (строго по пититаймерам), но с другой - иной точной методики я не знаю; цифры пититаймеров и последовательное выпадение рарок и обычек в соответствии с новыми правилами - единственные исходные данные, на которые можно опираться. К тому же я нисколько не отрицаю низкую точность метода. Мне казалось, что добиться её невозможно, так как нельзя наверняка предсказать, что и как именно будет падать, поэтому я в первом посте порекомендовал полученный результат поделить пополам, а затем прибавить к нему от 1/4 до 1/3 от исходного числа. А сейчас уже будет релиз нового аддона, я открою купленные паки и пойму сам, годится ли мой метод на что-то или нет.

Папка со статистикой. Надеюсь, заполнила правильно.
https://yadi.sk/i/5EU4coRNbwUtuQ

А вот моя: https://yadi.sk/i/eH6jauz1VZmseg

На этом основании я делаю выводы:

а можно конкретнее, что ты имеешь в виду? тяжело оценивать коллекцию по списку паков. я так понял, ты у себя отметил 63 пак как пак, в котором собрались все рарки, но и Часовая Драконьей Пасти и Пленный наблюдатель и Натрезим в доспехах у тебя к этому моменту уже в 3 экземплярах.

3 экземпляра - 2 обычных, и 1 золотой. Золотой лишний.
На твоём примере:
Часовая Драконьей Пасти: 2 не золотые в 52-м и 63-м паке, золотая в 60.
Пленный наблюдатель: золотой в 44-м и не золотые в 56-м и 62-м.
Натрезим в доспехах: золотой в 33-м и не золотые в 21-м и 61-м.

Так что всё на самом деле нормально работает.

ну т.е. в 60 паке у тебя собрались все рарки по 2 копии, а к 63 паку допадали все простые рарки, которых было только по одной, из-за того что были золотые