Comments 28
Выигрывать то помогает? =)
Отвечу за автора.
Да помогает, если работает.
Чистая математика с вероятностями.
Подобные программы у многих "регов" уже лет 10.
Профессиональные реги никогда не используют ботов, только легальный разрешенный софт. Многие вообще не используют софт во время игры. Например в многостоловых турнирах МТТ собирать статистику на игроков нет особого смысла, потому что с большинством из них вы никогда не встретитесь при тех же условиях. Статистика нужна на топовых регов своего лимита и это покупается на сайтах типа hhmailer.com
Отвечу как рег с большим опытом, вряд-ли помогает. Потому что мат модели используются очень устаревшие для покера.
Обучать модели нужно на ГТО калькуляторах, а чтобы он в реальности плюсовал, нужно брать пласт выборки истории игроков и изучать статистику по ситуациям и выстраивать эксплуатации к общим тенденциям поля. Даже было смешно читать, когда автор написал, что изучил покер за неделю.
В топовых румах автобота будет создать очень сложно, для тех что попроще, они уже и так есть. Правда в последнее время их очень активно вычисляют команды игроков, потому что у ботов паттерны очень похожи.
Но как говорится, кто не пробует у того и не получается.
Цель проекта была учебная. Покер выбрал просто как интересную тему (был уже знаком, давно сам играл). За время проекта реально глубже разобрался в игре, много нового узнал, но конечно, "изучил за неделю" - скорее в кавычках.
Тема слишком обширная, статья больше про личный опыт и технологии, чем про профи-софт.
Пока не успел проверить в реальных румах - античиты блокируют любой сомнительный софт. Даже Cursor, просто среда разработки, у некоторых клиентов определялся как чит.
Сам бот не "угадывает победу", а считает матожидание и подсказывает оптимальные ходы на дистанции. Теоретически должен давать плюс, но пока это только преположение. Чтобы проверить надо сыграть много игр на реальных партиях.
Я все это читал, чтобы узнать результат тестов идеи, что в итоге то?
Написал же, что боится бана и это правильно. На крупнейших покерных сайтах вроде Pokerstars читерство с ботами карается пожизненным баном с заморозкой аккаунта, расследованием и возвращением средств пострадавшим. Вообще там любят банить за любую подозрительную активность с программным обеспечением и только потом начинают разбираться, требуя выслать кучу документов, видео с паспортом в руке и тд
Бот работает в тестовом режиме, в реальных румах пока не проверял - античиты блокируют любой подозрительный софт. Проект пока учебный, не про заработок.
Молодец что не сидишь в офисе и протираешь зад, решая в 80% задач не приносящих удовлетворения.
Но
Модель получилась адекватная? Технико экономические показатели в студию!
За месяц игры в решиме адвайзера потратил столько то заработал столько то
За месяц игры в режиме автопилота такто.
Модель детекции (карты и элементы стола) работает стабильно - точность около 95-98%, за все время ручного тестирования, ни разу не перепутала класс карт. Стол тоже определяется надёжно.
Основная проблема - OCR (распознавание текста). Пробовал Google‑библиотеку и разные методы верификации, но иногда все равно ББ считывает как 66 или теряется точка, из-за чего число скачет в разы.
Экономику не считал - проект учебный, до реальных тестов в румах не дошёл.
Лайк за то, что в принципе занялся таким проектом. Хотя подобные боты использовались ещё лет 7-8 назад. Для некоторых их них писали отдельные игровые профили: кэш, МТТ, сит энд ГОУ, спины... Я и сам немного писал.
Понятно, что можно играть по EV, но я не увидел что конкретно (кроме монте-карло) реализовано (может пропустил по ходу текста). Потому что добавить в софт можно очень многое. Чарты стартовых рук в зависимости от позиции, глубины стеков и действий на префлопе. Сбор статистики на игроков (если софт рума не скрывает никнеймы). Статистика очень помогает принимать верные решения и эксплуатировать игроков. Расчет эквити и анализ диапазонов оппонентов. Если прям совсем задаться целью, то можно и на лету разбирать деревья решений по GTO (как это реализовано в GTOWizard). А ещё затачивать логику игры под разные типы игры (кэш, МТТ и так далее).
К тому же, реализация автобота на одной машине с клиентом рума - заведомо провальная идея. Такие вещи детектились несколько лет назад, а сейчас СБ некоторых румов на раз-два вычисляют софтеров. Есть куда более изящные пути по считыванию информации (и СБ ничего не найдет в принципе, машина с клиентом будет чиста). А сами действия всегда должен предпринимать человек.
Может лучше будет подключить gto библиотеку к вашей поделке
Про Python-библиотеку GTO не слышал.
В статье писал про возможные улучшения - можно добавить расчёт диапазонов рук, деревья решений и более сложные модели для оптимальных стратегий. GTO-логику также можно интегрировать.
Вы про какую GTO библиотеку имеите ввиду?
Интегрировать ГТО логику можно - Вы представляете вообще пласт работы? Вам нужно рассчитать не разные деревья, а буквально выстроить игру диапазона рук против диапазона. С разными линиями, размером ставок и их сбалансировать. А еще вы не представляете, какие для этого нужны вычислительные мощности. Если Вы имеете в виду взять готовые сервисы, типа ГТОвизард, то они, насколько я знаю, все защищены от подобного - там стоят задержки для выдачи ответов и что-то еще, ну по крайней мере они делали заявления, что их не получится использовать во время игры, когда все по понятным причинам забеспокоились. Использовать локальные калькуляторы тоже не особо представляю как - они довольно долго просчитывают споты, особенно на флопах. Думаю, если углубитесь в тему, то вам задача "интегрировать ГТО" не покажется тривиальной)
В покере немного разбираюсь, по крайней мере опыта больше в покере чем в программировании. Сам тоже пытался создать бота с помощью ИИ. Были большие проблемы с распознаванием экрана, точнее карт и стат данных противников. Про yolo не слышал. А можно весь ваш код чтобы я дальше под себя переделал, также с помощью ии. А то по отдельности, я сам все равно не смогу собрать в единое.
О мне тоже, как игроку в покер с большим стажем и человеку недавно открывшему для себя вайбкодинг, очень интересно как успехи в полях у бота.
Присоединяюсь к предыдущему комментатору, развиваться можно много куда. В связи с этим вопрос: Монте Карло ваш, вычисляет эквити против диапазона 100% или какого-то другого?
Вершина эволюции покера, это ГТО виззард с блокировками ренжей. Можно брать как ориентир к чему стремится
Есть куда более изящные пути по считыванию информации (и СБ ничего не найдет в принципе, машина с клиентом будет чиста). А сами действия всегда должен предпринимать человек.
трансляция экрана с камеры?
Если умеешь кодить - режим Agent лучше не использовать.Он может внести изменения, которые не сразу заметишь, а потом полдня будешь разбираться, почему всё сломалось.
Почти всегда использую режим Agent, а для отслеживания изменений есть Git.
Метод Монте-Карло считает просто эквити руки, по факту Вы написали навороченный автоматический калькулятор эквити, которые давно открыты и доступны всем (PokerStove, Pokerstrategy Equilab, Flopzilla).
В чем проблема: эквити руки вообще - это шанс на победу с текущей комбинацией, если соперники будут играть чек-чек до шоудауна (вскрытия). Какой фабрик, орайт? В описанной Вами формуле ЕВ вы считаете ЕВ ставки, которое опять же рафинировано: в игре вы не знаете руку соперника и не знаете, что он будет с ней делать. Пример - у вас может быть 70% эквити (что много, как вы понимаете), но соперник может вас просто заблефовать, например поставить аллин с худшей рукой и на ряде текстур вам придется фолдить и это будет правильной игрой - ВАШЕ ЭКВИТИ ВЫБИЛИ. Поэтому знать эквити неплохо, но это лишь часть необходимой информации для принятия решения - ставка, чек и тп.
Ну и еще пара моментов - если у вас куча эквити, вы не должны ставить в 100% случаев, вы будете играть по прямолинейной стратегии, которую вменяемый регуляр довольно быстро поймет. Здесь вводится понятия баланса ваших ставок и чеков для равновесной стратегии, но углубляться не буду. И еще, эквити нужно считать ПРОТИВ ПРЕДПОЛАГАЕМОГО ДИАПАЗОНА соперника, который разный на всех улицах (префлоп, флоп, терн и ривер) и меняется, в зависимости от действий соперника, а не против всех стартовых комбинаций.
Поэтому если я правильно понял матчасть - то это не работает, пардон. Если бы покер решался парой мат формул, он бы умер уже очень давно. Здесь на сцену выходит как раз ГТО, но написать своего ГТО бота задача чуть-чуть посложнее, сами понимаете.
Давайте поделюсь, как там сейчас обстоят дела на самом деле. А на самом деле боты давно захватили онлайн покер. НЛХ кэш уже давно и почти во всех румах заражен, причем основной поставщик железных - компания "Ботфарм", известная в кругах покерных регуляров. Они давно заходят в румы и выкачивают тысячи долларов (там миллионы долларов буквально олтайм), они даже размещают объявления на авито о найме операторов (потому что автоматизированные боты уже почти везде отлавливаются службой безопасности), устраивают им утром дейлики и отправляют в поля. К слову, их боты не играют по ГТО, они давно допилили алгоритмы для игры под разные лимиты и силу игроков и сделали упор на эксплуатационный стиль. Поясню - ГТО обыграть невозможно, но ГТО будет иметь макс ЕВ только против ГТО стратегии. Когда соперник играет не по ГТО, можно подбирать эксплоиты под его ошибки на огромных выборках статистики и делать контр-стратегию. Лучше дела обстоят в МТТ, из-за разных стеков и стадий просчитать его гораздо сложнее, чем 100бб кэш, но боты добрались и туда. И прям не много площадок осталось, которые с ними действительно пытаются бороться.
В заключении скажу о моральной составляющей, упомянутой автором в комментариях: боты буквально убивают онлайн покер. Раньше играть в покер было отличным вариантом для условного человека из глубинки. Можно было зарабатывать несравнимые почти ни с чем деньги, реги верхних лимитов раньше имели ожидания в сотни тысяч долларов в год. Стать покерным профессионалом - это часы игры в день и тысячи работы над теорией вне столов. Сейчас же покерная мечта уже увы, фактически мертва. Использование ботов или RTA запрещено правилами рума, а написанный самостоятельно бот будет с большой вероятностью забанен с конфискацией средств.
Совет не использовать режим агента сильно спорный. В агенте вся и соль. Я не знаю как это работает в курсоре, но в любом случае можно комититься в гит перед началом работы по новой задаче и видеть что наменял агент. В vs code и это не нужно, каждое изменение от агента видно.
Немного знаком с темой, сам писал такую же (похожую) программу на Python и именно для этого покера. Основные проблемы на самом деле - те, что автор указал:
OCR для ставок и других мелких элементов стола, которые к тому же еще часто перекрываются другими элементами (распознавание позиции на столе у меня делалось 1 раз в секунду, иногда за это время на столе появлялись перекрывающие элементы из-за анимации - летающие карты и т.п.) В конце концов, мне удалось повысить точность распознавания до 95% для текста. Я отказался от готовых OCR (из которых самым лучшим оказался EasyOCR) и перешел на собственную модель на основе TensorFlow.
Скорость распознавания - я сумел сократить до 4-5 сек на весь стол (все игровые позиции, имена, рейтинги и бюджеты игроков, позиция "героя", сделанные ставки, карты на столе и у героя). Но все равно это долго... Для реального рума надо до 1 сек. с учетом, что далее все это передаваться в игровой движок для подсказки действия, а это еще несколько секунд. Но я тестировал на своем обычном ноуте. Наверное, с GPU было бы намного быстрее.
Игровой движок. Это явно не примитивный метод Монте-Карло. Здесь существуют специальный софт, он в основном американский и китайский. Конечно платный )) Внутри заложена сложнейшая математика, т.к. всякий кто более менее в теме, знает, что в покере выигрышные алгоритмы не могут быть полностью просчитаны, требуется сложная эвристика.
Что касается румов и банов. Как мне объяснили люди, близко стоящие к теме, софт на ПК игрока не может стоять, т.к. будет детектиться и баниться. Единственно возможное решение - установка чита (нашей софтины) на отдельный комп и вывод туда изображения стримом с высококачественной камеры. При этом бэкенд движка подсказок вообще может находиться на отдельном сервере, т.к. очень требователен к ресурсам (это может быть VPS).
Ну и вишенка на торте. Также по инфо от людей в теме. Сейчас 90% или больше игроков в румах - это боты или игроки с такими подсказками. Сейчас весь покер - это просто войны ботов. Такова реальность.
Немного поздно идти с ботом туда, где уже рулят боты, причем на порядки совершеннее, как проект "для тренировки" пойдет конечно.
Онлайн покер давно мёртв, да и жалеть тут не о чем. При желании сыграть "по старинке" надо искать офлайн варианты.
Как я написал покер‑бот за 4 недели, используя Cursor + GPT