Потеряли кубики от настольной игры или понадобился d20 прямо посреди сессии? Бросить кубик онлайн можно прямо здесь — этот бесплатный генератор заменит любой кубик, которого не оказалось под рукой. Укажите, сколько кубиков нужно бросить, в поле «Кубики» — от 1 до 20 — задайте количество граней для каждого в поле «Грани» и нажмите «Сгенерировать». Страница открывается с двумя обычными шестигранными кубиками, поэтому первый бросок можно сделать в один клик. Каждый кубик отображается отдельно, а общая сумма броска появляется под ними, так что для 3d6 не придётся считать в уме.
Каждый бросок выполняется вашим браузером через Web Crypto API (crypto.getRandomValues), который предоставляет криптографически надёжные случайные значения из собственного источника энтропии вашей системы, а не через псевдослучайную функцию JavaScript вроде Math.random(). Превращение исходного 32-битного значения в номер грани — это то место, где генераторы кубиков незаметно ошибаются: вычисление значения по модулю количества граней — самый очевидный подход, но он вносит искажение, потому что, если только количество граней не делит 2^32 без остатка, самые младшие грани выпадают чуть чаще остальных. Этот недостаток называется modulo bias (искажение деления по модулю), и он вполне измерим, а не просто теоретичен. Данный генератор, напротив, отбрасывает любое значение, превышающее наибольшее точное кратное количеству граней, и тянет число заново — эта техника называется rejection sampling (выборка с отклонением). Она требует нескольких дополнительных итераций, зато обеспечивает точную гарантию вместо приблизительной. Данные не отправляются на сервер, ничего не логируется, и после загрузки страницы ваши броски продолжат работать даже при обрыве соединения.
Два поля делают всю работу, и они напрямую соответствуют нотации кубиков, которая уже используется в играх. «Кубики» — это количество кубиков, которые вы бросаете за один раз, от 1 до 20. «Грани» — это количество граней у каждого из них, от 2 до 1000: этого хватит для подбрасывания монетки d2, полного ролевого набора из d4, d6, d8, d10, d12 и d20, процентного кубика d100 и всего, что игра может изобрести за их пределами. Любая запись вида NdM — это и есть эти два поля: 2d6 означает «Кубики» 2 и «Грани» 6, одиночный d20 — это «Кубики» 1 и «Грани» 20. Бросаете 3d6 для проверки характеристики персонажа? Установите «Кубики» на 3, «Грани» на 6, нажмите «Сгенерировать», и три грани появятся вместе с их суммой. Два переключателя меняют то, как выглядит результат, а не то, чем он является. Опция «Анимированные 3D-кубики», включённая по умолчанию, заставляет кубик вращаться, прежде чем он остановится — отключите её, и числа появятся мгновенно в виде простого списка. Настройка «Случайный цвет» придаёт каждому кубику собственный цвет вместо стандартного красного, и она работает только тогда, когда включены «Анимированные 3D-кубики», так как в простом списке нет кубиков, которые можно было бы раскрасить. Точки рисуются только для шестигранных кубиков; любой другой вид просто показывает выпавшее число на грани, поскольку шаблона точек для семнадцатигранника не существует.
Под результатом находится строка, которая избавляет вас от вычислений: Σ — это сумма всех кубиков в броске, рядом с которой указано время генерации и пометка о том, что бросок выполнен локально. Кнопка «Скопировать всё» помещает результат в буфер обмена, а «Сохранить в файл» записывает его в текстовый документ — обе функции выдают отдельные грани, по одной на строку, а не сумму, поэтому лог того, что было брошено, остаётся именно логом выпавших граней. «История» хранит 10 ваших последних бросков прямо в браузере: нажмите на любой из них, чтобы вернуть его на экран вместе с суммой, скопируйте или удалите отдельную запись, либо очистите весь список, когда захотите. Кнопка «Очистить» опустошает поле с результатами, не трогая ваши настройки.
Лучше ли виртуальные кубики, чем настоящие? В плане честности — да, и причина кроется в физике. У обычного литого кубика точки высверливаются и закрашиваются, а высверливание удаляет материал. В результате грань с шестёркой — с шестью углублениями в ней — оказывается едва заметно легче остальных, а противоположная ей грань — едва заметно тяжелее. Precision dice (прецизионные кубики) в казино существуют именно по этой причине: их точки заполняются заподлицо материалом той же плотности, края срезаются под прямым углом, а не закругляются, они обрабатываются с точностью до долей миллиметра, и всё равно их выводят из игры после нескольких часов использования. Кубики из коробки с настольной игрой не обладают ни одной из этих характеристик и со временем становятся только хуже: отколотый уголок, стёртое годами тряски ребро, кубик, брошенный на одеяло вместо стола, на самом деле вообще не обеспечивают случайность. У виртуального кубика нет геометрии, которая могла бы испортиться, нет износа и нет техники броска, о которой можно было бы спорить, и на десятитысячный раз он ведёт себя точно так же, как и на первый. Чего он не может — так это лежать у вас в руке. Честное резюме таково: этот генератор выигрывает в честности, но проигрывает в атмосфере.
Честный кубик — это не то же самое, что честная сумма. Каждая грань одного кубика выпадает с одинаковой вероятностью, но как только вы складываете кубики вместе, суммы перестают быть равновероятными, и это постоянно застаёт людей врасплох. Два шестигранных кубика ложатся в 36 равновероятных комбинациях; шесть из них в сумме дают 7, в то время как ровно одна комбинация даёт 2 и одна даёт 12 — поэтому 7 выпадает в шесть раз чаще, чем 12, на идеально честных кубиках. Добавление третьего кубика ещё сильнее сужает распределение, вот почему 3d6 группируются вокруг середины и почему геймдизайнеры прибегают к ним, когда значение должно быть заурядным чаще, чем экстремальным. Один шестигранный кубик в среднем выдаёт 3,5, поэтому 2d6 даёт в среднем 7, а 3d6 — 10,5, и эта арифметика за столом обычно полезнее, чем любая отдельная вероятность. Ничто из этого не является искажением: просто так работает сложение кубиков, и именно по этой причине игра требует броска 2d6, а не d12, когда оба покрывают один и тот же диапазон.
У кубиков нет памяти. Четыре шестёрки подряд не делают пятую шестёрку менее вероятной, если кубик за весь вечер ни разу не показал единицу, это не значит, что единица ему причитается, и ни одна грань никогда не «должна» выпасть больше, чем другая — каждый бросок не зависит от всех предыдущих, и кубики не могут знать, что они делали минуту назад. Инстинкт, утверждающий обратное, — это ошибка игрока (gambler's fallacy), и тот же самый инстинкт делает нас никудышными генераторами бросков: когда нас просят написать правдоподобную серию результатов, мы избегаем повторений, чередуем высокие и низкие значения и распределяем числа гораздо равномернее, чем это когда-либо делает случайность. Истинная случайность, напротив, порождает скопления, серии одинаковых значений и долгие пробелы. Последовательность, которая выглядит подозрительно аккуратной — это отпечаток пальца человека.
Почему стоит выбрать этот генератор кубиков?
- Броски только в браузере: кубики бросаются на вашем устройстве и никуда не отправляются
- Случайность Web Crypto API: криптографическая безопасность, а не Math.random()
- Отсутствие modulo bias: алгоритм rejection sampling сохраняет равную вероятность для каждой грани
- Любой кубик для любой игры: от 1 до 20 кубиков за раз, от d2 вплоть до d1000
- Автоматический подсчёт суммы: Σ суммирует весь бросок, поэтому 3d6 не требует вычислений в уме
- Анимированные 3D-кубики с возможностью отключения для мгновенного получения простого списка
- Свой цвет для каждого кубика, чтобы несколько кубиков было легко различить с первого взгляда
- «История» и «Сохранить в файл»: храните записи о бросках, результаты которых вам, возможно, придётся обосновывать
- Безлимитно и бесплатно: без регистрации, без ограничений на использование и ничего на наших серверах
Кубики появляются везде, где игре нужно число, которое никто не выбирал. Игроки в настольные ролевые игры делают бросок атаки на d20, бросают 3d6 для определения характеристики и d100 для процентной проверки, и сессия, потерявшая половину своего мешочка с кубиками, продолжается несмотря ни на что. Настольные игры на кухне работают точно так же, если кубики куда-то запропастились — установите «Грани» на 6, «Кубики» на 2 и играйте дальше. Дистанционные группы бросают кости на общем экране, чтобы все видели одни и те же выпавшие значения. Учителя проводят классический урок по теории вероятностей: бросьте 2d6 60 раз, подсчитайте суммы и позвольте форме распределения проявиться на доске. Геймдизайнеры проверяют, действительно ли механика даёт такой большой разброс, как кажется, прежде чем что-либо уйдёт в печать. И множество бросков решают не более чем то, кто ходит первым, кто покупает кофе или какой из двух планов побеждает — те самые решения вслепую, которые люди принимали с помощью кубиков на протяжении нескольких тысяч лет.
У этого генератора есть несколько честных ограничений, о которых стоит знать. Один бросок использует один вид кубиков: значение в поле «Грани» применяется к каждому кубику в броске, поэтому d20 и d6 вместе потребуют двух бросков вместо одного. Здесь нет модификаторов, бросков с преимуществом (advantage) или помехой (disadvantage), взрывающихся кубиков и поля для ввода нотации — вы получаете грани и их сумму, а любые правила сверх этого вы применяете сами. Значок Σ подсчитывает каждый кубик в броске, в то время как «Скопировать всё» и «Сохранить в файл» записывают отдельные грани, а не сумму. Анимация всегда представляет собой шестигранный куб, независимо от количества граней, потому что это декорация: грань, на которой он останавливается, — это бросок, который движок уже совершил. Броски выполняются локально на вашем устройстве, поэтому для дистанционной игры один человек бросает кубики и демонстрирует экран — этот генератор производит бросок, который вы можете объяснить, а не тот, который может сертифицировать третья сторона. И криптографически честный кубик — это всё ещё просто честный кубик: он не имеет никакого отношения к розыгрышам лотерей или казино и никому не даёт преимущества. В этих пределах гарантия надёжна — каждая грань каждого кубика имеет абсолютно одинаковые шансы при каждом отдельном броске.