Шансы и план побед
Шансы не «зашиты» одним числом: контракт подстраивает их под объём игры. Пока игроков мало, копилки маленькие, и выигрыши частые и небольшие. Когда проект растёт, копилки большие, а выпадают они реже.
Правила плана побед
1. Объём недели
Раз в неделю контракт запоминает число прокрутов за неделю, но не меньше 500 (на старте и в тихие недели). Назовём его N. От него зависит всё остальное.
2. Частота джекпота следует за объёмом
Шанс джекпота на прокрут равен 1 / (0,8 × N), то есть если за неделю делается столько же прокрутов, сколько за прошлую (и не меньше 500), джекпот выпадает примерно раз в неделю при любом объёме. При меньшем объёме он реже: при 100 прокрутах в неделю и N = 500 не чаще чем раз в 4 недели. Меняется размер: копилка набирает 30% каждого прокрута, значит в среднем N × 0,3 токенов.
3. Мини в 10 раз чаще
Мини-джекпот выпадает в 10 раз чаще джекпота, поэтому копилка успевает набрать меньше, и выплаты мельче. На старте это значит: небольшая выплата примерно раз в 50–60 прокрутов.
4. Порог копилки
Шанс на копилку включается, только когда в ней набралось 25% от средней. Поэтому сразу после выплаты нельзя выиграть мелочь: джекпот ждёт, пока вырастет.
5. Крупные призы
Шанс приза золотого барабана — 0,08% на прокрут от объёма не зависит. Мелких призов нет: 100, 250, 500, 1 000, 2 500, 10 000.
6. «Ещё раз»
11,6% на прокрут, всегда. Это бесплатный прокрут за счёт призового пула, он не меняет вашу ставку.
Что будет при разном объёме
Главный барабан
Золото 2,83%, «Ещё раз» 11,6%, пусто 85,6%. Внутри золота: джекпот 8,83%, мини 88,3%, призы 2,83%.
Золотой барабан
Очень тонкие сектора для видимости слегка расширены, остальные уменьшены. Чем реже выпадает, тем тоньше сектор.
Цифры в этом блоке считаются теми же формулами, что и контракт (целыми числами), для случая «копилки на среднем уровне». Это расчёт: реальные недели колеблются.
Симуляция плана побед
Прогон кода контракта на компьютере: один игрок делает все прокруты недели, случайные числа даёт генератор псевдослучайных чисел. Первая неделя и первый джекпот (в нём лежат стартовые 10 000) в замер не входят.
| Прокрутов в неделю | Недель | Джекпотов | Средний джекпот | Мини | Средний мини | Золото раз в | 10 прокрутов с золотом |
|---|---|---|---|---|---|---|---|
| 500 | 40 | 39 | 198 | 328 | 7,9 | 52 | 21,1% |
| 5 000 | 12 | 10 | 1 906 | 101 | 77,2 | 375 | 3% |
| 50 000 | 3 | 5 | 8 361 | 23 | 797 | 920 | 1,2% |
- При 500 прокрутах в неделю золото выпадает примерно раз в 52 прокрута, и около каждой пятой серии из 10 приносит хотя бы одно. Выплаты небольшие: мини в среднем 8, джекпот около 198 токенов.
- При росте объёма золото реже, зато выплаты крупнее (в таблице при 50 000 в неделю: джекпот около 8 361).
- Средний возврат игрокам в длинной симуляции: 81,9% вместе с суперджекпотом (без него 74,2%). Остальное сгорает или уходит администратору (с рекламой); затравка джекпота уже входит в выплаты игрокам.
Симуляция запускается командой cargo test -p fairdrum --test engine_tests -- --nocapture и входит в проверки репозитория. Самая первая выплата в жизни контракта включает стартовую затравку 10 000 токенов, поэтому она заметно больше обычных.
Призы золотого барабана
| Приз, FAIRDRUM | Доля среди призов | Шанс на один прокрут |
|---|---|---|
| 100 | 61% | 1 из 2 049 |
| 250 | 27% | 1 из 4 630 |
| 500 | 7,5% | 1 из 16 667 |
| 1 000 | 3,5% | 1 из 35 714 |
| 2 500 | 0,8% | 1 из 156 250 |
| 10 000 | 0,2% | 1 из 625 000 |
| Всего приз | 100% | 1 из 1 250 · средний приз 241 |
Если призовой пул не покрывает приз, выплачивается сколько есть в пуле. Пул пополняется 35% каждого прокрута.
Формулы контракта
Все шансы — это целые доли от 232, без дробных чисел (файл math.rs):
- N = max(прокруты прошлой недели, 500). Здесь неделя — семидневный отсчёт от момента запуска контракта, он не обязан совпадать с четвергом, с которого начинается неделя бесплатных прокрутов.
- шанс джекпота = 1 / (N × 0,8), если копилка ≥ N × 0,3 × 0,25, иначе 0
- шанс мини = 10 × шанс джекпота, если копилка мини ≥ (N / 10) × 0,13 × 0,25, иначе 0
- шанс приза = 0,08%; шанс «Ещё раз» = 11,6%
- если выпало золото, оно делится на джекпот, мини и приз пропорционально этим шансам
Сайт считает эти числа тем же кодом и сверяется с контрактом тестом на образцах из Rust.