Первый бот для Хартстоуна в ВК 🤖

Да не факт. Многие мобилки недалеко от браузерок ушли, некоторые даже хуже. И как раз любители поиграть во всякую мобильную парашу также играют в ХС.

По моему самым логичным вариантом было бы просто каким-то образом посчитать вероятности именно 5 карты.

Потому что она всегда рарка или выше.

Соответственно можно предположить что она роллится отдельно.

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

На самом деле проще опытным путем найти необходимые вероятности именно под вашу реализацию. Пройтись в цикле несколько миллионов раз и сравнить результаты. Можно даже нейросети задействовать :slightly_smiling_face:

Если стоит задача тупо сделать симулятор отдельного пака, то хватит двух шагов алгоритма:

  1. Сделать 5 коммонок;
  2. Случайным образом заместить от 1 до 3 коммонок картами другой редкости, минимум одной раркой.

Если же нужно сделать выпадение паков из целого выпуска, то можно так:

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

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