Победа над покерным ботом

Я думаю, что простое соединение должно работать:

nl = []
for x in range(1,10):nl.append(str(x))
print ' '.join(nl)
107
задан rook 3 November 2010 в 18:37
поделиться

12 ответов

Победа над ботом с точки зрения сервера

  1. Многие сайты онлайн-покера используют всплывающие подсказки. Captcha, которые срабатывают в случае подозрительной активности.

  2. Некоторые покерные сайты отслеживают время и модели игры (т.е. в худшем случае сценарий - игрок, который играет 24 часа в сутки 7 дней в неделю и за 16 столами непрерывно, существует крошечный шанс, что это настоящий человек. (Однако некоторые игроки обладают способностью играть очень большие объемы рук, что неопытному глазу может показаться ботом)

  3. Бросьте его глючить. Если вы подозреваете, что что игрок - бот, измените все его позиции игральных карт на несколько пикселей на экране, сделайте их разные цвета/дизайны/шаблоны на 1/100 руки и посмотрите, не перебросит ли это их. Если он не может захватить экран, он все его решения будут завершаться тайм-аутом и это довольно убедительное бот доказательство.

  4. Тайминг говорит, если компьютерный игрок реагирует на варианты за миллисекунды за раз без паузы для размышлений при принятии важных решений это может быть подозрительным

  5. Самоконтроль. Покерный сайт pokertableratings.com data анализирует данные многих крупных сайтов. Это было воспринято неоднозначно, одни любят прозрачность, другие ненавидят. Преимущество, однако, в том, что были случаи. когда подозрительные игроки статистика (проценты VPIP, проценты PFR - несколько из большого количества большого количества количественных статистических данных которые могут быть записаны) привели к выводы о мошенничестве

  6. Искусственные интеллектуальные классификационные сети могут отслеживать количественную статистику, чтобы классифицировать мошенничающих или роботизированных игроков.

  7. В те времена, когда онлайн-покер был довольно когда онлайн-покер был довольно новым явлением, ходили слухи и разговоры с ограниченными доказательствами того, что некоторые клиентские программы для покера снимки экрана подозрительных игроков рабочих столов, чтобы проверить, не запущены ли на них программы, которые им помогают. Однако (даже если бы это было правдой) использование двух компьютеров для выполнения этих двух задач независимо друг от друга позволило бы обойти эту проблему.

  8. Обмен информацией между рецидивистами правонарушителей между несколькими сайтами был бы полезен для отрасли, если бы только они были честными и управлялись компетентными ответственными людьми

  9. Некоторые боты, вероятно, были бы довольно простыми по своей конструкции, если бы вы могли узнать их стиль игры и посмотреть, как они действуют в идентичных ситуациях (обратите внимание, что это возможно только с неискушенными ботами, играющими в очень базовую стратегию), вы сможете обнаружить их достаточно быстро.

  10. Непоследовательное использование программных функций будет склоняться к тому, что что игрок настоящий. Возьмем, к примеру например, многие покерные сайты в игре есть кнопка 'Fold when it's my turn'. кнопка. Если вам выпала плохая рука и вы ждете, пока другой игрок решает, что делать, многие игроков отмечают эту кнопку. Бот может использовать эти кнопки. На сайте Разница в том, что бот будет находиться на грани частоты использования, он, вероятно, будет либо использовать их все время, либо не использовать вообще. В то время как игрок обычно нажимает 'autofold', но иногда они будут все равно нажмет "фолд" даже в самых благоприятных условиях. Например, настоящий игрок обычно нажимает auto fold, но в этот раз они этого не сделали. Им выпал фолд, и ни один ни один игрок не действует, теперь они им представилась самая благоприятное условие. Теперь если они нажмут фолд, они с самого начала были бы склонны нажать автофолд. Это непоследовательное/неоптимизированное/случайное поведение, соответствующее человеком. Временные подсказки о том, когда нажимаются эти функции, являются другими индикаторами. Важно понимать, что это все индикаторы, а не убедительные доказательства. Все эти поведенческие индикаторы могут быть легко смоделированы.

Победа над ботом с точки зрения игрока

  1. Старайтесь регистрировать и собирать как можно больше данных с помощью такого программного обеспечения, как PokerTracker

  2. Попытайтесь выявить закономерности в его стиле игры

  3. Попытайтесь найти взаимосвязь между размером ставки в пропорции к банка/# игроков и силой руки

  4. Попытайтесь рассчитать его диапазоны рук. Бот с низкими ставками, вероятно, не будет блефовать достаточно часто, чтобы представлять значительную стратегическую важность, поэтому построение точных диапазонов рук для него не должно быть слишком сложным.

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

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

Так что, по сути, вы ничего не можете сделать, чтобы остановить его, если робот достаточно умен, чтобы имитировать реальные временные задержки при принятии решений, а также создавать разумные и реалистичные модели игры. Добавьте некоторые случайные условия и простую обратную связь (лексикон игроков в покер обычно довольно ограничен), и вы получаете игрока с искусственным интеллектом, которого будет довольно трудно обнаружить.

Что могут делать боты, чтобы избежать обнаружения

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

  1. Создайте реалистичные графики игры (т.е. 3-5 раз в неделю, 4 часа за сессию, с одной неделей и выходной в течение года).

  2. Запускайте программы для принятия решений на отдельном компьютере, контролируя компьютером-зомби на случай, если какие-либо сайты захват экрана.

  3. Рандомизировать время действий (не действовать сразу, подождите 0,5-2 секунды на

  4. Засекайте время на принятие важных решений. Если решение пограничное, просчитайте решение, затем подождите некоторое время, чтобы имитируйте размышления.

  5. Случайное использование функций клиентского программного обеспечения. Имитируйте перерывы на туалет, нажимая кнопку "Выйти из игры" на всех столах и устройте 5-минутный перерыв время от времени.

  6. Симулированный чат, покерный чат - это часто очень простые односложные фразы, никогда обычно не бывает дискуссий или дебатов. Скажите такие вещи, как "не повезло" или "отвали" в в подходящие для этого моменты. Или даже попросите кодера следить за своим бота и вступать в чат во время выполнения.

  7. Убедитесь, что движения мыши реалистичными. Если таблицы плиточные, не принимайте решение на верхнем левом столе, а затем мгновенно принимать на правой нижней таблице. Большинство программ для сайтов сейчас предлагают сочетания клавиш, их можно использовать вместо перемещения мышкой.

  8. Делайте вещи, которые просто не ожидает ИИ. классификаторы не ожидают. Например, например, раз в год звоните им с простым и несложным запросом ("Помогите, я не могу Я не могу войти в систему сегодня!" или "Интернет не работает!"). Вряд ли это что-то изменит, но если человек, работающий в покерной компании, достаточно умен, он мог бы распознать это как реальный индикатор.

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

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

Даже когда были обнаружены вопиющие случаи эксплуатации (поищите в google Cereus network скандалы или Absolute Poker Scandal, это довольно шокирует), бизнес, похоже, выживает и остается здоровым, теряя только хорошо образованных и выигрывающих игроков (которых не так много). Это увеличивает долю менее квалифицированных игроков в сети, что, в свою очередь, привлекает хороших игроков обратно. Это старая добрая ловушка 22. Отличный аргумент в пользу надлежащего регулирования рынка.

Важно отметить, что для каждой игры существует равновесие Нэша. Онлайновый покер имеет временные рамки в том виде, в котором он работает сейчас, он должен перейти к чему-то более социальному (веб-камера/vip), чтобы кто-то мог доверять ему в будущем (если люди будут доверять ему), так как боты в конечном итоге возьмут верх как математически превосходящие и психологически неуязвимые. Сообщество покерного ИИ очень активно, подпитываемое академическими кругами и/или выгодой капитала.

Более простые версии покера, такие как лимитный покер, были почти решены в небольших пространствах поиска. Это лишь вопрос времени, когда более сложные версии игры (варианты No Limit/Pot Limit Omaha и т.д.) станут побиваемыми для искусственных игроков.

Заключение

Сложные боты просто не могут быть обнаружены, пока индустрия не перейдет к более социальным онлайн-играм. Это не решит проблему, но определенно затруднит победу ботов на низких уровнях. Мы уже наблюдаем небольшой сдвиг с выходом PKR, 3D и более интерактивной, с меньшим количеством рук в час версии других сайтов, где мультитейблинг является довольно сложной задачей для игрока.

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

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

Покер - очень сложная игра, на освоение которой уходят годы (старая пословица остается верной: "Десять минут на обучение, целая жизнь на освоение"). Элемент удачи крайне ограничен в долгосрочной перспективе.

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

Как часто вы видели по телевизору кэш-игру с высокими ставками и слышали, как кто-то кричал: "Это легкий колл!", доказывая тем самым, что любители действительно не понимают и не признают сложности игры, и действительно считают, что игра на таком уровне остается простой. Это не так. Эти игроки с высокими ставками (в большинстве случаев) появляются на телеэкранах, потому что они действительно действительно действительно хороши. Кроме того, вероятно, ведется сложная мета-игра, о существовании которой наш любитель не догадывается. Любитель не будет стоять над шахматным мастером и кричать ему, чтобы он передвинул своего коня, но из-за динамики покера - несовершенства информации - их психология заставляет их искренне верить в то, что они говорят. Как и в шахматах, решения могут быть сложными, деликатными и чрезвычайно важными для общей игры. По мере усложнения игры тривиальные решения становятся не такими уж тривиальными, потому что ваш противник ожидает их.

Когда вы продвигаете своего бота или свою игру по уровням, вы неизбежно сталкиваетесь с большим количеством более опытных игроков. Тогда сложность вашей стратегии должна будет подняться на новый уровень, принимая во внимание изображения на столе, балансировку диапазона, сложный и умный блеф (IE не просто блеф на слабость, блеф на диапазон, блеф на изображение и т.д.), с более подробным анализом диапазона рук. Это действительно другая игра, когда вы поднимаетесь выше.

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

Так что вы действительно ничего не можете сделать. Если вы хотите играть онлайн, осознайте риски. Никогда не рискуйте большими деньгами, чем вы можете себе позволить, и старайтесь вести точный учет расходов, чтобы у вас не было ошибочной, нереалистичной и в конечном счете вредной переоценки собственных возможностей. Ставьте стоп-лоссы и покидайте стол, если у вас нет преимущества, или если вы не уверены, что у вас есть преимущество! Конечно, если бы все так поступали, никто бы не выигрывал, такова хищническая и эксплуататорская природа игры, отсюда и возникает конкуренция, и именно это делает ее увлекательной.

209
ответ дан 24 November 2019 в 03:38
поделиться

Необходимо рассмотреть три отдельные области. Бот должен выяснить состояние таблицы, принять решение и отправить решение обратно хосту.

Узнать состояние таблицы намного проще, если она отправляется по сети в некоторой узнаваемой форме или отображается пользователю в виде стандартного текста. Сначала сделайте распознавание изображений единственным вариантом, а затем сделайте его как можно сложнее. Отобразите карточки в 3D и медленно меняйте ориентацию и положение карточек. Анимируйте небольшие мерцания или фейерверки перед карточками, чтобы любой снимок экрана мог быть неразборчивым, но даже на то, чтобы это определить, требуется время.

С принятием решения ничего не поделаешь. Попытка решить, было ли решение принято человеком или нет, похожа на тест Тьюринга, в котором почти нет информации.

Отправка решения может быть затруднена повторным использованием 3D. Сделайте сложным отправку пакетов напрямую или иным образом отправку решения любым способом, кроме нажатия кнопки с помощью мыши. Слегка перемещайте кнопки при каждом действии или пусть они медленно плавают по игровой зоне в ожидании решения. Отключите любые функции типа доступности, которые позволяют находить кнопки или управлять ими.

9
ответ дан 24 November 2019 в 03:38
поделиться

В идеале единственное допустимое решение - создать логику приманки, которая заманивает заинтересованного бота, создавая соблазн более благоприятного логического условия, которое способствует наиболее идеальным поведенческим реакциям бота. Как только бот задействован в приманке, вы должны постоянно поддерживать условия бота, которые он предпочитает, предполагая, что у бота нет установленного тайм-аута. Затем бота можно измерить, зарегистрировать и изучить. В дополнение к боту у вас также будут изолированные данные сети и сеанса для изучения, при условии, что бот не подключается через TOR.

В этой ситуации детерминистические соображения, подходящие для дифференциации бота от человека, менее строгие, однако детерминистические соображения при идентификации поведения бота становятся более строгими. К сожалению, владелец бота может внести в него изменения, чтобы предотвратить такую ​​идентификацию, если этот владелец осведомлен о состоянии приманки или его логическом рассмотрении.

5
ответ дан 24 November 2019 в 03:38
поделиться

Посмотрите этот пост

В этом сообщении также есть несколько хороших советов о том, как им помешать.

3
ответ дан 24 November 2019 в 03:38
поделиться

PokerPirate, как и почти все когда-либо написанные покерные боты, работает, очищая экран и имитируя щелчки мышью в покерном приложении Windows. Таким образом, краеугольным камнем системы является ее способность распознавать объекты в игре и выполнять действия в окне. Каким бы умным он ни был в покере, у него, вероятно, все еще есть проблемы с этими основными операциями.

Таким образом, очевидные способы помешать этому боту включают:

  1. Внедрение CAPTCHA либо перед игрой, либо когда другие факторы предполагают, что игрок может быть ботом.
  2. Сделайте графику стола более сложной или меняйте тему на протяжении всей игры.
  3. Обнаружение необычно быстрых и / или роботизированных движений и щелчков мыши (человек никогда не будет двигать мышью по математически точной линии).
8
ответ дан 24 November 2019 в 03:38
поделиться

Еще одна мысль о том, как возиться с экраном, чтобы усложнить сканирование:

Сделайте карту из целого ряда разных цветов - близких с точки зрения человеческого глаза, но не одинаковых. Это затруднит выбор материала для чтения. С другой стороны, нанесите на карточку фальшивую надпись такого цвета, который человеческий глаз не отделит от фона.

2
ответ дан 24 November 2019 в 03:38
поделиться

Проблема с ботами заключается в том, что они играют лучше, чем приличные человеческие игроки, или в том, что они могут ждать 24 часа в сутки 7 дней в неделю, пока появятся плохие игроки, а затем пытаться их накормить?

Кроме того, будет ли "законным" или "жульничеством", если кто-то будет иметь компьютер, сидящий рядом с ним во время игры в покер и советующийся с другим компьютером?

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

2
ответ дан 24 November 2019 в 03:38
поделиться

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

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

1
ответ дан 24 November 2019 в 03:38
поделиться

100% решение невозможно, я предлагаю решение, которое позволит сэкономить деньги, используя ИИ против него самого. Пусть экземпляр ИИ PokerPirate работает на стороне сервера и играет как невидимый игрок в каждой игре. Если любой игрок выполняет слишком много одинаковых действий, то, вероятно, он управляет экземпляром PokerPirate. Это своего рода Honeypot или ловушка, в которую может попасть атакующий. Атакующий может защититься от этого honeypot, сделав своего бота менее успешным. Таким образом, создается подобие "кошки-мышки", в которой атакующий всегда может украсть немного денег, а защищающийся всегда может спасти немного денег.

0
ответ дан 24 November 2019 в 03:38
поделиться

Победа над покер-ботами может принимать две формы: вы можете попытаться идентифицировать их и заблокировать в системе, или вы можете просто победить их в покере. Победить их в покере - более интересный академический вопрос. : -)

Некоторые статьи о победе над покер-ботами можно найти здесь: http://www.cs.cmu.edu/~sganzfri/

4
ответ дан 24 November 2019 в 03:38
поделиться

Есть гораздо более простые способы. Да. Многие предложения правильные и нужные. но около 90% мошенничества обнаруживается слишком простым способом.

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

что остается: проверьте аккаунты с одинаковым поведением в игре и одинаковым хэшем пароля.

-2
ответ дан 24 November 2019 в 03:38
поделиться

Взгляните на Ajax Control Toolkit NoBot:

NoBot использует несколько различных методов борьбы с ботами:

* Forcing the client's browser to perform a configurable JavaScript calculation and verifying the result as part of the postback. (Ex: the calculation may be a simple numeric one, or may also involve the DOM for added assurance that a browser is involved)

* Enforcing a configurable delay between when a form is requested and when it can be posted back. (Ex: a human is unlikely to complete a form in less than two seconds)

* Enforcing a configurable limit to the number of acceptable requests per IP address per unit of time. (Ex: a human is unlikely to submit the same form more than five times in one minute)
1
ответ дан 24 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: