Стратегия Case 21:
MAKACIM
— это очень агрессивный и математически точный алгоритм. В отличие от Holy Grail (Case 22), который строит циклы через evo_step, MAKACIM является "бесстатусным" (stateless) алгоритмом.
Это значит, что у него нет микро-сценариев. На каждом спине он стирает память и рассчитывает всё с чистого листа.
Его главная философия: "Ставим на горячие номера и повторители, а сумму ставки рассчитываем так, чтобы любой выигрыш мгновенно отбил все прошлые просадки и вывел баланс на новый исторический максимум плюс 20 монет".
Давайте разберем код по косточкам.
ЭТАП 1. Поиск цели (Отбор номеров)
1. Всегда берем последний выпавший номер
2. Ищем "Горячие" номера в последних 20 спинах
Как это работает:
Атом зачищает стол.
Он гарантированно ставит на только что выпавшее число (ловит немедленные повторы).
Затем он сканирует tablo20 (последние 20 спинов). Если какое-либо число выпадало больше 1 раза (то есть 2 раза и более за 20 спинов), оно считается "горячим" и тоже добавляется в список ставок. Итог этапа: У нас получается "плавающее" поле ставок. Иногда это будет 3 номера, иногда 7, иногда 10 — зависит от того, насколько часто повторяются числа на рулетке.
ЭТАП 2. Математика Recovery (Формула Мартингейла на пробитие потолка)
Это сердце алгоритма MAKACIM.
csharp
int MAX_PLUS = 20 * coinMult; // Наша чистая прибыль сверх старого рекорда
int targetCredit = Atom.SessionMax + MAX_PLUS; // Целевая точка баланса
int deficit = targetCredit - Atom.Credit; // Сколько нам не хватает прямо сейчас
Цель: Допустим, ваш максимальный баланс за сессию (SessionMax) был 1000.
Мы хотим пробить этот потолок и заработать еще 20. Наша цель (targetCredit) = 1020.
Если сейчас у нас серия проигрышей и баланс упал до 900, наш deficit составляет 120. Нам нужно заработать 120 фишек ОДНИМ попаданием.
Здесь применяется
Идеальная формула возврата. Почему мы делим дефицит на (36 - количество номеров)?
Пример (доказываем математику):
Дефицит = 120.
Выбрано горячих номеров (activeCount) = 6.
Считаем: 120 / (36 - 6) = 120 / 30 = 4.
Ставка на каждый из 6 номеров = 4 фишки.
Что произойдет, если шарик упадет на один из наших 6 номеров?
Мы сделали ставку: 6 номеров * 4 фишки = 24 фишки ушло со стола.
Баланс стал: 900 - 24 = 876.
Мы выиграли! Дилер платит 36 к 1. Нам возвращают 4 * 36 = 144 фишки.
Итоговый баланс: 876 + 144 = 1020! Бинго! Одним попаданием мы отбили всю просадку и вышли точно на заданный уровень SessionMax + 20.
Mathf.CeilToInt округляет значение всегда вверх.
Если получилось 4.1, ставка станет 5. Это гарантирует, что мы точно пробьем цель, а не остановимся в шаге от нее из-за копеек.
ЭТАП 3. Лимиты и отправка Призракам
Защита от микро-ставок и потолка стола
Если дефицита нет (мы на пике побед), алгоритм ставит базовую единичку (baseBetUnit).
Если просадка гигантская и формула говорит поставить 150 фишек на номер, а лимит стола (maxBetVal) равен 50, ставка жестко срежется до 50 (иначе Менеджер сойдет с ума).
Номера смещаются (ApplyGhostShift), чтобы Призраки могли искать свою дельту, и фишки отправляются на стол.
Резюме: Плюсы и минусы MAKACIM
✅ В чем его сила:
Он не боится длинных просадок. Как только выпадает нужный повторитель, баланс катапультируется наверх, пробивая старый максимум.
Он динамичен. Ширина ставки сама подстраивается под "настроение" рулетки.
⛔ В чем его опасность:
Это агрессивный Recovery-алгоритм (родственник Мартингейла). Если горячие номера вдруг перестанут падать и начнется фаза "холодного хаоса", deficit начнет расти экспоненциально.
Ставки взлетят до потолка (maxBetVal), алгоритм упрется в лимит стола и больше не сможет отбить минус одним ударом.
Именно поэтому такие агрессивные стратегии идеально работают в паре с Призраками (Ghosts). Призраки "горят" виртуальными деньгами на плохих участках, а на реальный стол (к главному балансу) выходит только тот Призрак, который сейчас "в фазе" с рулеткой и легко забирает свои SessionMax + 20.