Как стать автором
Обновить

Комментарии 82

Начиналась статья здорово — закончилась за упокой (скучновато).
Спасибо за идею об использовании бонусов! А то я тут уже кучу времени потратил на выигрывающий алгоритм. Самое веселое, что на совсем низких ставках мой бот проигрывает, а стоит перейти на ставки по-выше, и начинает играть в плюс:)

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

Уверен, скоро весь онлайновый покер станет миром ботов, как и торги на бирже. Несмотря на заявления румов, боты им выгодны. Выгодны потому что они ставят много и часто, а как раз на rake'e румы и зарабатывает.
На маленьких ставках люди просто не думают, а играют как попало, что ломает мозг боту
Именно так! Бот пытается понять кто блефует, кто применяет slowplay и т.п., а в итоге большинство зависит от того, выиграл или проиграл последние несколько раздач противник. Эмоции, чтоб их, очень тяжело предугадывать.
А зачем ему понимать. Ему нужно придерживаться «средней стратегии по больнице» и будет выигрывать на дистанции. Блеф бот может разгадать, только если сам игрок имеет некоторые ридсы на оппонентов, либо в него заложены общие концепции понимания блефа.

В конце концов оппоненты не будут осознавать, что играют с ботом и не будут пытаться как то особо уж хитро действовать.
Конечно, по противникам собирается статистика, а как же иначе? :)

Средней стратегии не очень получается придерживаться, т.к. люди быстро понимают что при моем райзе надо сбрасывать, а если у них сильная рука, то slowplay'ить, т.к. бот играет агрессивно. В итоге начинаешь выигрывать мало, хоть и часто, но зато очень много проигрывать редко.

Чтобы всего такого не происходило, прошлось научить бота блефовать и специально прятать агрессию. На ошибочных блефах, кстати, во время испытаний было потеряно много денег…
>После написания бота, понимаешь, что написать хорошую защиту не такая уж и проблема. Добиться правдоподобного движения мышкой — крайне сложная задача.

Об инвалидах с управлением мышью с клавиатуры забыли…
Так сразу никто не банит. Тем более аккаунт с отрицательным доходом. Сразу банятся программы, которые попадают в паблик. Ибо это уже прямая угроза благополучию рума. Ну так и нефиг продавать его направо и налево.

Лично для меня написание бота — эксперимент для набирания опыта, опробования новых для меня технологий и разминка для мозга. Мне просто интересно попробовать свои силы. Я не претендую на звание сильного игрока в покер или специалиста по написанию ИИ.

Если же из этого можно будет получать стабильную прибыль, пусть и небольшую, то тогда, конечно, разговор будет уже совсем другим. Но пока что все на этапе тестирования и долгой-долгой отладки.
Я доэксперементился, так что аккуратнее ) Заблочили ак, правда после переписки разблокировали, но моя прога так и осталась висеть в списке оф-но запрещеных на старзах. Тоже опыт )
>Добиться правдоподобного движения мышкой — крайне сложная задача.

Когда-то имитируя действия человека я использовал с пару тысяч реально записанных «паттернов» с рандомным выбором (включая комбинации типа «промахнулись на пару десятков пикселей когда вели мышку через весь экран и аккуратно подвинули») искажениями
Вот про «пару тысяч» — круто, оформите статью с раздаточным материалом? ;)
Для маленьких лимитов и стратегии другие, и серьезность игры не та. Я думаю, что американцы и европейцы, играющие на лимитах 0.01/0.02 просто развлекаются «после работы».
Ну не скажи — что развлекаются :))
Я как-то столкнулся с одним итальянцем — такого о себе наслышался… видите ли я агрессивно играл и это типа игра идиота :))
Правда потом он извинился.
Мало ли у человека был сложный день на работе, а тут еще и какой-то русский его на низких лимитах сделал :)
Поддерживаю.
А где стратегия? :))
Нажимать и я могу прекрасно.
Упс — последний абзац-то я и не осилил. Бум ждать.
а по моему лучше использовать боты без третьего пункта, то есть самому нажимать на кнопочки… только тогда получится, что робот контролирует тебя, а не наоборот :))
Если нажимать самому — то проще научиться использовать свой мозг во время игры — все-равно скорость кликов ограничена, а на выходе больше денег будет.

Смысл ботов как раз таки в бешеном количестве играемых ими рук. Хотя, если у вас есть доступ к тыще китайцев — то да, можно тогда и без третьего)
И так, наши расходы на реализацию проекта:
Бот (1 шт.)...................$5000
Китайцы (100 шт.)......$500 (ежемесячно)…
Бешеное количество рук можно играть и самому, играя на 16 столах, правда это тяжело. Сам играл максимум на восьми, успех был нестабилен :(

Бот скорее нужен для идеального воплощения стратегии в жизнь.
8 — это уже хорошо. даже представить 16 столов сложно, а еще играть, да еще и, желательно, в плюс… я на 6 уже начинаю подклинивать.
Это я пробовал играть по ССС, забавная вещь, довольно рисковая и вероятностная. Играл на бонус :)
Покер — как шахматы — потеря концентрации на одну раздачу (ход в шахматах) может стоить тебе всего стека (партии). А бот может помочь не сделать этого… Может сделать типа советника?
Мысль трезвая, пошел думать.
Самое сложное написать бота который смог бы выигрывать. Интересен алгоритм.
Скорее всего все боты которые приносят хоть какой-то доход играют на самых маленьких лимитах, где и сами игроки неопытны и не смогут его опознать. Есть даже игроки, которые играя строго по чарту, умудряются выигрывать.
Мне кажется более-менее сильный игрок сможет опознать такого бота через некоторое время, а если не опознать — то он в любом случае научится у него выигрывать, как и у новичка, который не может подстроиться под действия соперника.
Насколько я знаю — для лимитных игр вполне существуют программы, которые очень сложно обыгрываются. Информация совершенно не проверенная, и из серии «бабка на дворе сказала», но я слышал о соответствующих разработках в том числе в виде надстроек над шахматными программами.

Но вот в безлимитной игре, я считаю, робот, который может выигрывать на высоких ставках вряд-ли появится в ближайшем будущем — там включается слишком много сложно типизируемых факторов, которые уже учесть программно на порядок сложнее, даже для самообучающихся систем.
Вполне возможно что программы существуют. Но большинство про них никогда не узнает. Служба безопасности покер-румов не дремлет. На том же full tilt готовы забанить за любую мелочь, а если до них дойдет информация про бота они будут всеми силами пытаться идентифицировать его и наказать всех виноватых.
Вот именно — интересно реализовать ИИ. А делать его ради прибыли… Даже не знаю.
Я в покер играю для удовольствия. Конечно выигрывать приятно :) Но когда ТЫ выигрываешь, а не за тебя…
Вот захочешь попробовать себя в офф-лайн турнире — и что дальше?.. Без бота ты никуда.
Так вот почему мой приятель, ещё несколько месяцев тому назад обеспечивавший себе существование онлайн-покером, теперь вынужден искать работу :)
НЛО прилетело и опубликовало эту надпись здесь
Ты приди на биржу, и скажи это там — тебя… байтами закидают )
Очень странно, но похожая статья была в Хакере текущем, причем по содержимому она куда интереснее)))
Интересно будет почитать. Давно в Хакере читал статью на эту тему, но там был именно взлом казино (блэкджек и подобные игры) и основывался на получении данных, которые игрок не должен был заранее получать (следующие карты, числа на рулетке), что в онлайн покере невозможно. Что интересно, в той статье описывалось, что бот даже с этой информацией все равно начинал проигрывать со временем (что-то менялось в алгоритмах, очень смутно помню). Так что не играйте в казино, лучше в покер против живых людей ))
Статья действительно очень интересная в журнале) Более развернуто написано с использованием общих понятий теории вероятности.

А сам покер я не очень воспринимаю, вот для 21 очень даже легко запомнить простые алгоритмы игры)
Теория вероятностей уже относится к алгоритмам принятия решений, ждите в следующей статье ;)

P.S. Надо почитать статью из Хакера, чтобы не написать тоже самое ))
Если кому интересно, журнал Хакер выпуск Январь 01 (121) 2009.
В руках сейчас держу номер 137 июнь 2010, в нем как раз про бота для покера и написано)
Запутался.
Сейчас глянем :)
Я вообще сначала подумал, что это копипаста из ][, но потом выяснил, что ошибался.
Зачем вообще нужен покер онлайн??
Всегда думал, что покер игра нервов, анализа соперника и психологии. В онлайн «тупо кач»… Собирайтесь с друзьями, с пивом, в удовольствие, в крайнем случае сходите в покерный клуб. Главное помнить, азарт штука хорошая, но в меру.
Люди зарабатывают себе на жизнь онлайн покером. А некоторые очень хорошо зарабатывают.
Да нету там психологии, совсем. Если конечно не вести речь о «давай поделем». Да и там ее кот наплакал. На и «нервов» тоже как-то не густо.

А анализ соперника ничем особо не отличается от онлайна.
Во многом покер — игра математическая. Сложно конечно разделить, но скажем условно: наполовину математическая, наполовину психологическая. Онлайн покер получается ущербным (наполовину :)), но более доступным для всех.
P.S. И в онлайне есть немного анализа соперника: хотя бы тайминг-телзы (можно делать выводы из того сколько времени соперник думает над ходом). Еще можно в чате что-нибудь написать — разозлить соперника, чтобы он как-то неадекватно действовал (не этичный, как и в оффлайне, но используемый прием).
+7/-7
Инь-Янь ))
чек-рейз
крутейшие статьи
спасибо
серия в целом неплоха, но во многом утратила актуальность. так-же как и приведенные примеры. скрины с FTP, но приведенная информация и предлагаемые инструменты (Spy++) для FTP не актуальны, Qt-шные окна им особо не поколупаешь.
Скажу банальную вещь. Но прежде чем писать покерного бота не лишне самому хотя бы сколько-нибудь прилично играть, разбираться в тонкостях и уметь анализировать собственные ошибки. (Или иметь друга-консультанта.) Всё же покер не такая уж простая игра какой может показаться на первый взгляд. Без реального игрового опыта хороший ( читай прибыльный) бот вряд ли выйдет. Окупит ли он в таком случае трудозатраты на его написание — уже вопрос.
По сути дела покерный бот сродни биржевому боту. Два месяца назад биржевые боты чуть не устроили вторую Великую Депресию. Интересно, чем черевато массовое использование покерных?

П.С. Казино всегда выигрывает.
А кто сказал, что в покер играют против казино только?
Тут речь как раз о покере против людей.
НЛО прилетело и опубликовало эту надпись здесь
хочешь выиграть у казино — купи казино

И какое это имеет отношение к покеру? Там не надо выигрывать у казино, там надо выигрывать у других игроков. Это конечно в случае честной игры со всех сторон. Казино тоже может вести честную игру, но игрок все равно будет в минусе, а они в плюсе.
НЛО прилетело и опубликовало эту надпись здесь
Хм, зачем покерной компании Хабр??? Рынок компьютерщиков ещё раз окучить?
Онлайн-покер — это в большой мере ИТ.
Ждём регистрации блогов публичных домов и порно-сайтов :) (учитывая законность данной деятельности в оффлайне)
Я могу понять компьютерные компании регистрирующие на Хабре, но цель покерной компании регистрирующейся на хабре вижу только одну — поиск новых игроков в конечном счёте.
Да ладно, вот вы выдумываете, все, кто уже хотел поиграть, уже освоили PokerStars, Full Tilt Poker, и так далее. Да и про какую такую вы «покерную компанию» говорите?

В статье рассматриваются интересные с точки зрения ИТ вещи, и я, как и многие, игравшие в покер люди, с удовольствием их читаю.
хочу бота, который выигрывает шлюх нахаляву.
А можно в бота можно встроить механизмы, благодаря которым он будет иногда делать заведомо невыгодные математически ходы и вообще несколько нелогичные вещи (разумеется, в таких пределах, чтобы не проиграть на дистанции, а только сбить с толку системы слежения покер-румов)? Или в таких штуках не будет смысла?
Так дело то в том, что робот не всегда принимает прибыльное решение. Тут можно и не встраивать заведомо проигрышные варианты.
А мне кажется что прибыльные решения как раз и расчитываются по формулам.
Игра ведь против спектров, значить предполагаемое EV решения посчитать возможно, а значит на дистанции должны принимать больше плюсовых решений.
Другое дело если кто-то заметит особенность которая позволит забирать деньги у бота.
Насчет движения мышью в PokerStars. Я думаю это не обязательно если установлен TableNanja.
Ботов ищут среди игроков фикс лимита и стратегии коротких стеков ну и СНГ.
Вот например эти аки вполне могут быть ботами (PokerStars) играющие по SSS:
ninja_tool, vancityhero, rossifillian
www.pokertableratings.com/stars-player-search/ninja_tool
Кстати друга играющего по SSS на лимитах 1к+ постоянно просят ввести антибот капчу :-)

Ничего полезного. Немного информации о хуках, чуть чуть о движении мышкой и легенды о работающих ботах. Это не для уровня Хабра, здесь были посты и о DLL injection и многом другом. И вообще писать с нуля систему для бота, при наличии уже готовых с открытым исходных кодом, выглядит безумным. Лучше потратить свое время на создание алгоритма, а не написание оболочки.
Несерьезно. Все описанные методики с внедрением в процесс могут быть записаны и обнаружены. Насчет «Пунто тоже внедряется» — никто не мешает клиенту считать допустим md5 от кода внедренной библиотеки и сверять на сервере с базой разрешенных библиотек. И отдельнот следить за юзерами с нестандартными библиотеками. Гораздо интереснее, например сделать псевдо-драйвер, имитирующий какой-нибудь тачпад, которрый будет двигать мышь. И сообщения WinAPI лучше наверно где-то в ядре отлавливать перехватом ф-й вроде PostMessage.
Человек который имеет знания как в программировании так и в покере, способный написать играющего в плюс бота хотя бы для средних лимитов, абсолютно точно не нуждается в этом так как наверняка зарабатывает явно больше чем бот приносил бы со средних лимитов ( и это мы не учитываем, что получим бан при первой же проверке)
Написание же бота для хайлимит покера требует ещё больших знаний в обоих областях, без вариантов требует использование нейросети, и при всём этом против «регуляров» этот бот будет играть весьма относительно… А необходимые ресурсы для его написания окупаться будут очень долго либо вообще никогда не окупятся если бот будет не жизнеспособным…
Так что особого смысла написание бота для денег не имеет, ну не оправдывают затраты результата.
Кстати да. Тех же призовых, что и в реальных турнирах, заработать все равно не удастся. А человек, который может написать использующего нейросети бота, скорее всего за свои навыки получается очень хорошие деньги у крупного девелопера вроде IBM, Abbyy или Microsoft…
На скриншоте ваш бот проигрывает )))
вы не подумайте, я не пишу покерного бота, но меня всегда интересовало — может ли программа определить был ли это реальный клик мыши или нечто пришедшее через SendInput? или для этого ей нужны повышенные права?
Покерофф на хабре — это хорошо, но затрагивать темы ботов, особенно не в ключе противодействия им, не очень хорошо :)
Из своего опыта игры в покер могу сказать, покерботы выигрывают не тогда, когда анализируют логи игроков, а когда несколько ботов играют за одним столом и имеют возможность обмениваться информацией о своих картах и знать, каких комбинаций у реальных людей быть не может.
так и люди так же выигрывают :) только такие варианты СБ гораздо проще отслеживать, а значит бан и изъятие средств наступит раньше.
1. Если вам предлагают купить выигрывающего бота — вас разводят в 99% случаев. Человеку просто незачем продавать такого бота.
2. Для написания покерных ботов в основном используются уже готовые платформы, где от вас требуется только запрограммировать алгоритм принятия решений. Остальное — получение информации из клиента путём распознавания картинки, нажимание на кнопки и т.д. платформа берёт на себя. Изобретать велосипед заново хоть и интересно, но ужасно неэффективно.
3. Пока что самый эффективный метод защиты бота от обнаружение система из 2 компьютеров (один может быть виртуальным), на одном из которых запущен клиент и сервер для удалённой администрации, а на втором запущен бот, который подсоединяется к первому и играет удалённо.
Зачем покерной компании писать про покерного бота? Логика?
А где вы видите покерную компанию? Насколько понятно из контента сайта — это просто тематический сайт. С кучей информации.
А зачем покерному боту инжектиться? Создаем виртуальную машину, запускаем и получаем штатно изменения экрана и возможность двигать мышку с клавиатурой. Изнутри виртуальной машины, где запущен клиент, ничего не видно. Иди я чего-то не понимаю?
оно то конечно как вариант для абсолютной маскировки, но придется делать скрин-ридер. а инъекцией можно читать карты и мувы еще до того как они на экране отрисуются. хотя вариант использования скрин-ридера со своим скином стола и карт может оказаться гораздо проще для чтения доски придется серьезно повозиться над распознаванием мувов :(
а инъекцией можно читать карты и мувы еще до того как они на экране отрисуются


Я, наверное, опять чего-то недопонял. Типичный покерный клиент — это Win32 приложение, которое для каждого стола создает окошко и в нем, с помощью BitBlt, рисует графику. Куда нужно инжектироваться, чтобы читать карты и мувы до того, как они отрисуются?
попробуйте помотреть куда и как инъектятся всякие OmahaIndicator/CalculatEm, имхо они одни из самых оперативных в плане реагирования на сдачу, часто в них карты появляются еще до того как будут отрисованы на столе.

у каждого клиента свой способ «рисовать». FTP использует Qt и карты в нем можно вычитать из хинтов/тултипов, iPoker вообще свой кэнваз, в котором черт ногу сломит, замонстрил. а инъектиться можно и в процедуры/протоколы получения/отправки мувов на сервер.

>Типичный покерный клиент — это Win32 приложение, которое для каждого стола создает
>окошко и в нем, с помощью BitBlt, рисует графику.
совсем нет. кто как хочет так и пляшет. раньше многие клиенты были написаны на Java, а теперь все еще веселее
Зарегистрируйтесь на Хабре, чтобы оставить комментарий