Не так давно я стал увлекаться покером, а помимо покера я занимаюсь компьютерным зрением и решил, почему бы не совместить приятное с полезным, и сделал распознавание объектов, которые находятся на покерном столе и добавил немного аналитики на основании которой я мог бы принимать решения о своих ходах. Кому интересно, что у меня получилось, добро пожаловать под кат!
Общее функционирование программы
Сразу оговорюсь, что в качестве рума я сделал выбор в пользу PokerStars и выбрал самую популярную разновидность покера — техасский холдем. Функционирование программы заключается в том, что запускается бесконечный цикл, который считывает определённую область экрана, в которой находится покерный стол. Когда наступает наш(героя) ход, выскакивает или обновляется окошко со следующей информацией:
- какие карты сейчас у нас на руках;
- карты, которые сейчас на столе;
- общий банк;
- эквити;
- о позиции и о ставке каждого игрока.
Визуально это выглядит следующим образом:
ТОП-5 программ для игры в покер онлайн. Трекеры, калькуляторы и другой софт для покера.
Определение хода героя
Сразу же под картами героя есть небольшая область, которая может быть либо чёрная, либо серая:
Если данная область горит серым — ход наш, в противном случае — ход соперника. Так как у нас изображение статично, то мы вырезаем по координатам данную область и работаем с ней, а далее с помощью функции inRange() , которая используется для детектирования пикселей изображения, которые находятся в определённом диапазоне цветов, передав туда вырезанное изображение, определить по количеству белых пикселей на бинарном изображении, которое нам вернула данная функция, наш ход либо нет:
res_img = self.img[self.cfg[‘hero_step_define’][‘y_0’]:self.cfg[‘hero_step_define’][‘y_1’], self.cfg[‘hero_step_define’][‘x_0’]:self.cfg[‘hero_step_define’][‘x_1’]] hsv_img = cv2.cvtColor(res_img, cv2.COLOR_BGR2HSV_FULL) mask = cv2.inRange(hsv_img, np.array(self.cfg[‘hero_step_define’][‘lower_gray_color’]), np.array(self.cfg[‘hero_step_define’][‘upper_gray_color’])) count_of_white_pixels = cv2.countNonZero(mask)
Детектирование карт
Что ж, после того как мы определили, что ход наш, надо бы распознать карты героя и те, которые на столе. Для этого предлагаю опять воспользоваться тем, что изображение статично и вырезать, а далее бинаризовать области с картами. В результате для такого изображения с картами:
получается следующее бинарное изображение:
После находим внешние контуры значений и мастей с помощью функции findContours() , которые в последующем передаём в функцию boundingRect() , которая возвращает ограничительные рамки каждого контура. Чудненько, теперь у нас есть боксы всех карт, но как нам понять, что у нас на карте, к примеру, туз червей? Для этого я нашёл и обрезал вручную каждое значение и каждую масть, и поместил данные изображения в специальную папку как эталонные изображения. После этого считаем среднеквадратическую ошибку между каждым эталонным и обрезанной карты изображениями:
10 лучших программ для покера | Покерный софт
err = np.sum((img.astype(«float») — benchmark_img.astype(«float»)) ** 2) err /= float(img.shape[0] * img.shape[1])
Для какого эталонного изображения ошибка получилась меньше всего, то и имя изображения присваиваем боксу. Всё просто:)
Определение банка и ставки игрока. Нахождение фишки дилера
Для определения банка мы будем работать с шаблонным изображением такого вида:
Шаблонное изображение и изображение всего стола мы передаём в функцию matchTemplate() , про которую я писал в одной из своих прошлых статей , которая одним из параметров возвращает координаты левого верхнего угла шаблонного изображения на изображении всего стола. Зная данные координаты, мы можем, отступив на константное значение вправо, найти цифры банка. Далее, по знакомой схеме, находим контуры и боксы каждой цифры, которые в последующем сравниваем с эталонным, только уже цифры, изображением, и считаем среднеквадратическую ошибку. Всю эту же махинацию, описанную в этом разделе, за исключением поиска шаблонного изображения, проворачиваем и со ставками каждого игрока, где координаты ставок прописаны в конфиг файле.
Фишка дилера в покере — обязательный атрибут, определяет очерёдность действий и торга всех участников игры. Если вы должны действовать одним из первых, то вы находитесь в ранней позиции. Если вы сидите в поздней позиции, то ваша очередь хода наступает одной из последних. Для 6-max стола, а мы именно такой и рассматриваем, позиции распределяются следующим образом:
Для определения, кто диллер, мы также берём шаблонное изображение, только уже такого вида:
Находим координаты верхнего левого угла данного изображения на изображении стола и используя формулу расстояния между двумя точками на плоскости, где вторые x и у координаты — это заранее прописанные в конфиг файле координаты центра игрока, определяем к кому ближе находится данная кнопка, тот и будет её владельцем:)
Распознавание свободных мест и игроков, которые отсутствуют
Так часто бывает, что за столом вместо 6 игроков сидит 5, тогда свободное место помечается подобным образом:
А под ником игрока, который на данный момент отсутствует, появляется следующая надпись:
Для выявления присутствия таких игроков, берём данные изображения в качестве шаблонных и изображение стола, и опять же подаём на вход функции matchTemplate() , но только теперь возвращаем не координаты, а вероятность насколько два изображения похожи между собой. Если вероятность, допустим, между первым изображением и изображение стола большая, значит у нас за столом отсутствует игрок.
Расчёт эквити
Эквити — это вероятность на победу у конкретной руки против двух конкретных карт или диапазона соперника. Математически эквити вычисляется как отношение количества возможных выигрышных комбинаций к общему количеству возможных комбинаций. На Python данный алгоритм можно реализовать с помощью библиотеки eval7(которая в данном случае помогает оценить насколько сильная рука) следующим образом:
deck = [eval7.Card(card) for card in deck] table_cards = [eval7.Card(card) for card in table_cards] hero_cards = [eval7.Card(card) for card in hero_cards] max_table_cards = 5 win_count = 0 for _ in range(iters): np.random.shuffle(deck) num_remaining = max_table_cards — len(table_cards) draw = deck[:num_remaining+2] opp_hole, remaining_comm = draw[:2], draw[2:] player_hand = hero_cards + table_cards + remaining_comm opp_hand = opp_hole + table_cards + remaining_comm player_strength = eval7.evaluate(player_hand) opp_strength = eval7.evaluate(opp_hand) if player_strength > opp_strength: win_count += 1 win_prob = (win_count / iters) * 100
В этой статье я хотел показать, чего можно добиться использую лишь классические методы компьютерного зрения.Я понимаю, что текущее решение вряд ли кто-то будет использовать при игре в покер, но в дальнейшем планирую добавить аналитики, которая уже может быть полезна. Если кто‑то хочет поучаствовать в проекте или у кого‑то есть идеи по его развитию — пишите! Исходный код как всегда доступен на github. Всем хорошего дня!
- Python
- Обработка изображений
- Машинное обучение
Источник: habr.com
Программы для покера
Играя в покер, участникам очень важно подсчитывать эквити, то есть — вероятность победы своей руки. Но делать это .
08.12.2021 0
Онлайн-покер уже не представляет своего существования без программ по сбору статистики, которые значительно облегчают жизнь игрокам. В этом .
04.10.2021 0
Любой профессиональный игрок в покер прибегает к математическим подсчетам и статистике, чтобы избежать ошибок и лишних проигрышей. Сегодня .
30.09.2021 0
Если вы любите смотреть покер-стримы, то наверняка замечали, как у профессиональных игроков выводится статистика в отдельном окне о .
03.08.2021 0
Ограничение работы ряда покерных онлайн-румов – один из актуальных вопросов для игроков из целого ряда стран. Российская Федерация .
28.07.2021 0
Профессиональный игрок в покер постоянно старается оттачивать свои навыки, продумывать и улучшать стратегию, чтобы обеспечить себе как можно .
28.07.2021 0
Все опытные игроки прибегают к дополнительным ресурсам, которые помогают им оттачивать свои навыки и просто упрощают покерную жизнь. .
08.07.2021 0
На данный момент существует множество разнообразных приложений и программ, которые облегчают жизнь игрокам в покер. В данной статье .
В настоящее время покерные программы стали неотъемлемой частью для успешной игры в онлайне. В большинстве случаев они служат некими тренажерами и необходимы для анализа собственных ошибок в стратегии и тактике, тем самым улучшая навыки игрока. Есть как платные, так и бесплатные программы.
Можно выделить основные задачи, которые может выполнить вспомогательный покерный софт:
– Проработать борд и диапазон рук. Существуют программы для покера, которые выводят статистику в процентном соотношении по прошедшим раздачам. Для этого пользователю необходимо ввести нужные данные и запустить работу. После чего можно понять, какое соотношение ваших прибыльных и неудачных раздач, а также вычислить свои ошибки в покере. Такой диапазонной софт доступны для работы в реальном времени, однако нужно учитывать, что не в каждом руме можно использовать вспомогательную программу во время игры.
– Собрать статистику. Подобный софт считается обязательным для тех игроков, которые хотят превратить покер в стабильный и долгосрочный доход. На данный момент представлено большое количество приложений, которые помогают собрать статистические данные на противника. Эта информация поможет вам понять, какую стратегию использовать против того или иного оппонента.
– Различный вспомогательный софт. Есть ряд интересных программ для удобной игры в покер, например, софт для тильт-контроля или же по контролю за посадкой участников стола.
В этом разделе вы сможете ознакомиться с обзорами лучших программ для покера, чтобы выбрать для себя наиболее подходящий вариант и прокачать свои игровые навыки. Но будьте внимательны! Не все покер румы разрешают использовать дополнительный софт. Обычно в обзоре мы отмечаем, какие программы являются запрещенными при игре в покер румах.
Источник: pokerizzy.ru
Программы для покера на PokerStars
Программы для покера на PokerStars: разрешенные, запрещенные и программы, использование которых ограничено частично. Рассмотрим каждую из них.
Типы программ для игры в покер
Прежде чем перейти к обзору разрешенных, запрещенных и частично легальных программ на Покерстарс, расскажем о типах существующего в онлайн-покере софта вообще. Условно весь его можно поделить на четыре типа:
- Онлайн-генераторы. Такие программы отличаются сбором данных о результатах раздач в режиме онлайн.
- Анализ рук и ситуаций. Этот сторонний софт регистрирует итоги прошедших розыгрышей, формируя данные о типичных ошибках, допускаемых за столом.
- Досье на оппонентов. Выдают информацию о противниках, основанную на долговременном мониторинге раздач, в которых они принимали участие. Такие программы оценивают результаты каждого розыгрыша. Их информация используется, как правило, при игре за финальными столами с сильнейшими соперниками.
- Контроль поведенческого фактора. Софт, с помощью которого можно контролировать игру покериста на той или иной позиции за столом. Также с их помощью изучают степень подверженности оппонента внешним факторам, в том числе вводят ли они его в состояние тильта и какую он демонстрирует при этом стратегию игры.
Разрешенные программы для покера на PokerStars
До лета 2015 года рум Покерстарс не придавал большого значения использованию игроками софта от других разработчиков. Однако к этому времени соответствующие нарушения, видимо, переполнили чашу терпения администрации, которая старается выстраивать справедливую политику рума в отношении всех его пользователей. Тогда-то и было принято решение определить критерии для разрешенных программ Покерстарс.
С августа 2015 года на PokerStars резко ограничил список разрешенного софта, который можно использовать при работающем клиенте рума. Сегодня в нем числятся следующие категории.
Анализаторы
Такие программы для покера по своей сути многогранны, так как дают возможность анализировать игроку и свою игру, и игру оппонентов. Хорошим примером в этом отношении служит программа Hold’em Manager 2. По всей видимости, это стало определяющим для решения оставить подобный софт с числе разрешенного на PokerStars . Установив определенный промежуток времени, можно следить за своим прогрессом от раздачи к раздаче. То же самое касается всех соперников, с которыми вы играли за этот период.
К этой же категории разрешенных программ на Покерстарс относится софт, дающий рекомендации по столам. Основываясь на статистических данных он ищет для покериста наиболее перспективный в плане выигрыша стол.
Сюда же относятся и те программы-анализаторы, которые сигнализируют игроку о его серьезных ошибках, приведших к потере денег. Эти сигналы — результат мониторинга раздач, игры в стадии префлопа, использования игроком своей позиции за столом и т. д.
Горячие клавиши
Простые программы для покера, которые также относятся к разряду разрешенных на PokerStars. Они нацелены прежде всего на автоматизацию игры. Что такое «горячие клавиши» сегодня объяснять не надо. Так и при игре в клиенте Покерстарс за определенными действиями (чек, колл, бет, олл-ин и т.п.) закрепляются те или иные клавиши. Это просто экономит время игрока, который сражается за несколькими столами, а заодно позволяет ему еще больше сконцентрироваться непосредственно на игре.
Программы для турниров
Этот софт весьма полезен при игре в рамках самых разных турниров — от крупных до раздач в рамках « sit-and-go ». Несмотря на то, что такие программы относятся к списку разрешенных на PokerStars , это вовсе не означает, что они гарантируют постоянный выигрыш. Подобный софт будет знакомить вас с информацией о соперниках, а также давать рекомендации по стилю и стратегии игры на той или иной ее стадии.
Базы данных
Программами, содержащими информацию об игроках, также разрешено пользоваться при работе клиента PokerStars. Ресурсы таких программ для покера содержат массу интересной и полезной информации, статистических данных об игроках тех или иных покерных онлайн-румов.
Список разрешенных программ PokerStars:
AdvancedPokerTraining, Auto HandPoster, ChangeMyHUD , EasyStreet, FreePokerDB (aka FPDB), Gam Poker Analyzer, Hold’em Manager 2, Hold’em Profiler, HotkeysPS, HotkeysFT, InfoPS, iHoldemIndicator (для версии для Mac OS X), iOmahaIndicator (для версии для Mac OS X), Jivaro, MacroPoker, NiceHandOmaha, Official Poker Rankings, Omaha Indicator, OpenTool, PlaceMint, PLO Ranger, Poker Copilot, Poker HoleCards, Poker Indicator, Poker Office, Poker Pro Labs, Poker Wizard, Poker4Tuna, PokerAssistant ByPlayers, PokerJuice, PokerRanger, PokerSolver, Poker-Spy, PokerStrategy SideKick, PokrHUD, PS Hand Watcher, PS Last Hand, PS Mate, PS Never SitOut, PS Play ByVoice, PS Wins Viewer, PS Zoom Database, PSHandler (version 1.31 and newer), RankExplorer, Selektor, SessionsManager, SharkScope (including Sharkscope HUD), SmartBuddy, StackAndTile, StarsCaption, StarsHelper, Stud Indicator, TableDroid, TableHook, Table of Interest, Table Optimizer, Table Tamer, ThePokerDB, TiltBreaker, TimeMojo, Tournament Indicator, Unfold Poker, Universal Poker Table Organizer, Xeester.
Добавим, что администрация PokerStars не дае т никаких гарантий относительно функциональности, надежности и безопасности перечисленных программ. Также Служба поддержки PokerStars информирует о том, что после появления информации о новых неизвестных сторонних программах содержимое списков разрешенных, запрещенных программ и программ с ограниченным действием может меняться.
Программы для покера с ограничениями действий
Использование этих программ также разрешено на PokerStars , но с одной существенной оговоркой — тогда, когда не работает клиент рума. К таковым в частности относятся:
Программы-советчики
Эту категорию почти разрешенных программ для покера на PokerStars можно было бы отнести к обучающим, но… Мешает этому несколько обстоятельств. Во-первых, советы здесь заключаются в составлении индивидуальных таблиц по размерам стека. Во-вторых, софт этой категории располагает Heads Up Display (HUD). А это дает возможность при включенном клиенте прямо в интерфейсе рума получать максимум информации о любом из соперников за столом, в том числе по его реакции на raise или re-raise на каждой стадии раздачи и т. д. По сути это практически беспроигрышный вариант.
Калькуляторы
Программы-калькуляторы на основе данных о картах определяют для игрока его шансы в той или иной раздаче. Для того, чтобы узнать свои перспективы, достаточно ввести информацию о количестве соперников, объеме банка, размере ставок, картах и мастях. Прогноз представляется довольно оперативно, избавляя покериста от необходимости самостоятельных математических вычислений. Большинство калькуляторов являются программами с ограниченным функционалом на PokerStars.
ICM (Independent Chip Model)
Независимое моделирование стоимости фишек также находится в списке разрешенных программ на Покерстарс с частичным ограничением. Этот софт также не возбраняется при отключенном клиенте. Почему? Потому что ICM возможно применить не только для подсчета варианта распределения призового фонда в финале МТТ, но и для сопоставления так называемых математических ожиданий тех или иных действий в отдельно взятой ситуации, возникшей по ходу турнира.
Список программ с ограниченным действием на PokerStars:
CardRunners EV, DriveHUD, FlopInspector, Flopzilla (version 1.7.9 and newer), Hand2Note, Holdem Indicator, HoldemBoss (version 24 and newer), Koculator , NoteCaddy, PioSolver, PokerSnowie, PokerTracker 4, SimplePostflop, SitnGo Wizard (version 1.0.1.163 and newer), Table Ninja II (version 2.6.13 and newer), ZenPokerDojo.
Запрещенные программы на PokerStars
К софту, запрещенному к применению на Покерстарс независимо от того включен ли клиент рума или нет, относятся откровенно мошеннические программы, в том числе всевозможные боты, которые дают их пользователю явное и более чем значительное преимущество над соперниками за покерным столом.
Боты
Это сторонний софт, который играет в покер за пользователя без его непосредственного участия в процессе. Но не только отсутствием пользователя отличаются боты. Играя в автономном режиме, они еще и выигрывают деньги у соперников.
Программы-шпионы
Разработчики наделили их способностью не только считывать карты соперников, но и обмениваться этой информацией. В итоге несколько пользователей с такой программой за одним покер-столом могут в считанные минуты раздеть «догола» обычного покериста. Где же тут справедливость и честность?
Софты-суфлеры
Это в прямом смысле подсказчики. Очень популярны у начинающих игроков в покер, стремящихся уже на первых порах к стабильным выигрышам. Такие суфлеры в буквальном смысле инструктируют новичков по действиям в каждой стадии игры, что позволяет выигрывать большинство раздач. Даже с участием искушенных и опытных покеристов.
Торговцы информацией
Программы для покера, аккумулирующие максимум информации об игроках, их истории раздач, о реакции на ту или иную игровую ситуацию, поведенческих моделях и т. д. Это не только досье на того или иного покериста, это шпаргалка по выгодной игре с ним. После эти данные реализуются в Интернете. Опять же об объективности в игре нет и речи.
Список запрещенного софта:
Advanced Poker Calculator, CardAnalyzer, Cardhider, Frogbot, FullAutoHoldem, Gambot, Hand Grabber, Hand HQ, HH Repository, HHCollector, HHdealer hhSmithy, Hold’em Watcher, Holdem Hawk, Holdem Inspector a.k.a. Online Holdem Inspector, Holdem Pirate, Holdem Spy, Holdem Tournament Raider, ICM-Bot, iHH Harvester, Mandraker, MyPokerIntel, NoLimitFoldem, Online Omaha High Inspector, Online Poker Bot, Online Tournament Inspector, Open Holdem Bot, OPI Wizard, Paragon Poker Pal, Poker Android, Poker Bloodhound, Poker Bot+, Poker Crusher, Poker Edge, Poker Inspector a.k.a. Online Poker Inspector, Poker Mate, Poker Prophecy , Poker Sherlock, Poker Sidekick, Poker Table Manager, Poker Usher, POKERobot, Preflop Autofolder, Preflop Poker Bot, RatingViewer, Seeker, Sense Mind, SessionLord CashOpener, SessionLord HandTracker, SessionLord Multitabling, SessionLord SngAutoColoring, SessionLord SnGOpener (regular and pro versions), SessionLord SpinRegistrator, Shanky Bot, SharkMate, Sit And Go Shark, Sit n’ Go Brain, Sixth Sense, SmartCollector a.k.a. Mixed Harvesters, SpadeEye, Stars Hand History (SHH), SpinWiz, StarSpy, StatsForPoker, Stud Inspector, Table Ratings aka Poker Table Ratings, Texas Auto Fold, WarBot, WinHoldem.
Заключение
Настоятельно рекомендуем учитывать выше изложенное. Прежде всего для того, чтобы стать и быть действительно хорошим игроком. Ведь даже бесплатные разрешенные программы на PokerStars не сделают вас по-настоящему опытным профессионалом. Это, скорее, лишь один из вспомогательных инструментов. Что же до запрещенных программ, то об их применении не стоит даже задумываться.
PokerStars такой софт вычисляет оперативно. Для начала предупреждает. При повторном же нарушении правил рума все средства злоумышленника будут конфискованы и Покерстарс навсегда попрощается с нечистым на руку игроком. Не идите на поводу у мошенников. Скачивайте и устанавливайте клиент PokerStars.
Играйте честно и профессионально!
Источник: playingstars.biz