Vaincre un Bot de Poker

il y a un nouveau bot de poker Open Source appelé PokerPirate . Je suis intéressé par tous les moyens créatifs par lesquels une application web pourrait détecter/contrecarrer/vaincre un bot poker. (C'est une discussion purement académique, dans le même esprit que PokerPirate a été écrit.)

107
demandé sur rook 2010-04-27 03:12:44

12 réponses

vaincre un bot du point de vue de serverside

  1. de nombreux sites de poker en ligne utilisent popup Captcha entrées qui sont déclenchées par les activités suspectes.

  2. certains sites de poker surveiller jouer temps et tendances (c.-à-d., le pire des cas) le scénario est un joueur qui joue 24x7 et 16 tables en continu, il y a une toute petite chance c'est une vraie humain. (Cependant certains joueurs ont la capacité de jouer de très grands volumes de main qui à l'oeil inexpérimenté semblerait être un bot)

  3. Lancez-lui des pépins. Si vous soupçonnez une joueur est un bot, changer tous leurs jouant la carte de positions quelques les pixels sur l'écran, de les rendre différentes couleurs/dessins/modèles pour 1/100 mains et voir si elle jette ils. Si elle ne peut pas l'écran de l'attraper vais de temps sur toutes ses décisions et c'est assez concluante bot preuve.

  4. Timing dit, si un joueur ordinateur répond aux options en millisecondes à un moment sans pause de réflexion sur les grandes décisions que cela pourrait être suspect

  5. d'Auto-surveillance. Le site du poker pokertableratings.com données mines beaucoup de grands sites. Il a rencontré un accueil mitigé, certains aiment la transparence, d'autres il déteste . L'avantage est, cependant, il y a eu des cas où suspect joueur statistiques (pourcentages VPIP), Les pourcentages de PFR sont quelques-uns des grands nombre de statistiques quantifiables qui peuvent être enregistrées) ont conduit à conclusions de la tricherie

  6. artificiellement intelligent réseaux de classification pourrait moniteur quantifiables statistiques classer la tricherie ou robotique joueur.

  7. de retour quand le poker en ligne était un assez nouvelle entité, il y avait des rumeurs et parler avec des preuves limitées que un logiciel client poker captures d'écran de suspects de joueurs des ordinateurs de bureau pour voir s'ils fonctionnaient les programmes qui les aident. Cependant (même si cela était vrai) exécuter deux ordinateurs pour effectuer les deux tâches indépendamment pourrait contourner cela.

  8. Partage d'informations entre repeat délinquants entre plusieurs sites serait bénéfique pour l'industrie, si seulement ils étaient honorables et dirigés par personnes responsables compétentes

  9. certains bots seraient probablement assez simple par la conception, si vous pouviez découvrir leur jouer le style et voir comment ils agissent dans des situations identiques (à noter qu'il est seulement possible avec simples robots de jouer base stratégie) que vous pourriez découvrir eux assez rapidement.

  10. utilisation irrégulière du programme caractéristiques pencherais vers un joueur d'être authentique. Prendre pour exemple de nombreux sites de poker en jeu avoir un "pli quand c'est mon tour" bouton. Si vous recevez une mauvaise main et attendent une autre joueur de décider quoi faire, beaucoup de choses des joueurs vérifieront ce bouton. Un bot peut utiliser ces boutons. Le la différence est, un bot serait sur les extrémités de la fréquence d'utilisation, ils seraient probablement les utiliser tout le temps, ou pas du tout. Où un joueur peut généralement appuyer 'autofold", mais parfois, ils vont cliquez sur pli de toute façon, même dans le plus des conditions favorables. Exemple, un vrai Joueur presse habituellement auto pli, mais pas cette fois. C'est plié tour avec pas de autre joueur qui agit, maintenant, ils ont été présenté avec le plus de condition favorable possible. Maintenant si la presse de fois, ils auraient été lourdement incliné pour appuyer sur autofold dès le début. C'est incompatible/unoptimised/aléatoire comportement cohérent avec le fait d'être un humain. Calendrier raconte sur lorsque ces fonctionnalités sont cliqué sont d'autres indicateurs. Il est important de reconnaître que ce sont là des indicateurs et non des preuves concluantes. Tous ces indicateurs comportementaux peuvent être simulés facilement.

vaincre un bot du point de vue des joueurs

  1. essayer de se connecter et de recueillir autant de données que possible en utilisant un logiciel comme PokerTracker

  2. son style de jeu

  3. tentative de trouver des relations entre la taille de la mise et pot/ nombre de joueurs et la force de la main

  4. essayez de calculer ses fourchettes manuelles . Un bot à faibles enjeux ne bluffera probablement pas assez souvent pour être de toute préoccupation stratégique importante, donc construire des gammes de main très précises pour elle ne devrait pas être trop difficile.

  5. tentative de trouver fuites dans son jeu via analyse de données et essai et l'erreur Une fois que les fuites / modèles ont a été trouvé, tentative de répéter les exploiter et éviter toute autre situation.

là où un humain est capable de adaptation , les bots sont probablement moins, et là où les humains sont pondérés par les chaînes de inclinaison , pensée axée sur les résultats et frustrations , les bots ne sont pas. Vous pouvez l'utiliser à votre avantage.

donc en essence il n'y a rien que vous pouvez faire pour l'arrêter si le robot est assez intelligent pour simuler de vrais retards de timing pendant les décisions, ainsi que de créer des modèles de jeu raisonnables et réalistes. Jetez dans certaines conditions aléatoires et simple back-chat (le lexique des joueurs de poker est généralement assez limité ) et vous avez vous-même un joueur AI qui va être assez difficile à détecter.

Ce que les robots pourraient faire pour éviter la détection

La clé pour éviter la détection serait de penser le problème depuis autant d'angles que possible. Vous essayez de simuler un comportement humain intelligent dans un monde très petit et restrictif. La plupart des simulations comportementales que vous pouvez effectuer sont assez évidentes, mais plus votre bot est incohérent et imprévisible, moins il est probable qu'il soit découvert.

  1. (c'est à dire, de 3 à 5 fois par semaine, 4 heures par session avec la semaine impaire ici et il y a au cours de l'année).

  2. exécuter des programmes pour prendre des décisions sur ordinateur séparé, contrôlant un ordinateur zombie en cas de sites capture d'écran.

  3. Randomize action timings (ne pas passer à l'acte immédiatement, attendre 0.5–2 secondes par action)

  4. le Temps vers le bas sur les grandes décisions. Si un la décision est limite, calculez la décision puis attendre un certain temps pour simuler la pensée.

  5. Random utilisation des fonctionnalités du logiciel. Simuler des pauses toilettes en cliquant le "deal me bouton" sur tous les tables et avoir une pause de 5 minutes chaque maintenant et puis.

  6. chat simulé, poker chat est souvent des doublures très simples, jamais habituellement discussion ou débat. Dire des choses comme "malchanceux" ou "stfu" à des moments décelables appropriés. Ou même si le codeur surveille son bot et de s'engager dans le chat pendant exécution.

  7. S'assurer que les mouvements de souris sont réaliste. Si les tables sont carrelé ne prenez pas de décision sur table en haut à gauche, puis faire instantanément sur sur en bas à droite de la table. La plupart des logiciels de sites offrent maintenant des raccourcis clavier, ceux-ci peuvent être préférables à utiliser comme supposé mousemovement.

  8. Faire des choses que, tout simplement IA les classificateurs n'attendront pas. Pour exemple, une fois par an de téléphone jusqu' avec une simple requête non complexe ("Help I can't journal d'aujourd'hui!"ou" L'Internet est en panne!") Peu probable de faire beaucoup de différence, mais si la personne qui travaille pour la société de poker est assez intelligent, ils auraient pu le reconnaître comme un indicateur réaliste.

  9. sessions perdantes sporadiques. L'inclinaison peut la simulation et le bot peut jouer mal et de perdre de l'argent chaque maintenant et puis. tout le monde s'incline à certains point.

le souci est également que les sites de poker ne se soucient pas particulièrement si les bots sont en cours d'exécution sur leurs réseaux, chaque joueur vaut une grande quantité en râteau et théoriquement d'un point de vue purement cynique d'affaires le seul inconvénient serait mauvaise presse si elle a été découverte.

même lorsque des exploits flagrants ont été découverts, (recherche sur google pour Cereus network scandales ou Absolute Poker Scandal , c'est assez choquant) l'entreprise semble survivre et rester en bonne santé, ne perdant que les joueurs instruits et gagnants (dont il n'y a pas beaucoup). Cela augmente la proportion de joueurs moins qualifiés dans le réseau, ce qui à son tour attire les bons joueurs de retour. C'est une bonne vieille prise 22. Un excellent argument en faveur d'une réglementation appropriée du marché.

il est important de noter, que pour chaque jeu un Nash équilibre existe . Ligne poker a une chronologie de la façon dont il fonctionne maintenant, il va devoir passer dans quelque chose de plus social (webcam/voip) pour quiconque de faire confiance à l'avenir (si les gens lui font confiance) que les robots prendront éventuellement comme supérieur mathématique, et psychologiquement immunisé. La communauté ai de poker est très actif , alimenté par le milieu universitaire et/ou capital bénéfice.

versions plus simples de poker comme limit poker ont été très presque résolu dans de petits espaces de recherche. Ce n'est qu'une question de temps avant que des versions plus complexes du jeu (No Limit variations/ Pot Limit Omaha etc) deviennent beatable pour les joueurs artificiels.

Conclusion

les bots sophistiqués ne peuvent pas être détectés tant que l'industrie ne passe pas à un environnement de jeu en ligne plus social. Cela ne résout pas le problème, mais il sera certainement plus difficile pour les robots de gagner au les niveaux inférieurs. Nous avons déjà vu un léger changement avec la sortie de PKR , 3D et une version plus interactive , moins de mains par heure des autres sites où le multi-câblage est assez difficile à accomplir pour un joueur.

le problème souffre également de la nature de l'industrie, encore une autre raison de s'en tenir aux plus grands sites Web de bonne réputation où la réputation est devenue de plus en plus intégrée dans leurs affaires modèle. Manque de transparence et feint transarancy n'aident pas la cause.

le vrai défi actuellement pour les développeurs de bots est d'écrire un algorithme gagnant, ce n'est pas aussi trivial qu'il n'y paraît. Tout le monde qui joue au poker se considère bon, gagnant ou un joueur de break even, ce qui est tout simplement pas vrai. C'est pourquoi les gens continuent à jouer, même quand ils perdent de l'argent car ils sont sous l'illusion qu'ils sont tout simplement malchanceux, ou leur style de le jeu est mal compris. Cette arrogance et la faiblesse dans la psychologie humaine a coûté perdre des joueurs beaucoup d'argent et est la raison fondamentale que le poker peut encore être rentable.

Poker est un jeu très compliqué qui prend des années pour obtenir de bons résultats (le vieil adage reste vrai,"dix minutes à apprendre, une vie à maîtriser"). L'élément chance est extrêmement limité à long terme.

comme n'importe quelle autre profession, pour obtenir bon, vous devez étudier pour des centaines et des centaines d'heures, et de jouer à plusieurs milliers. Vous comprendrez des choses que les joueurs moins expérimentés ne comprennent pas, repérez des choses que les joueurs moins expérimentés ne comprennent pas. L'apprentissage dure très longtemps, peut-être plus longtemps que nous ne pouvons jamais vivre. C'est un jeu compliqué.

combien de fois avez-vous vu un jeu d'argent aux enjeux élevés à la télévision et entendu quelqu'un crier à elle "C'est une décision facile!"ce qui prouve que les amateurs ne comprennent pas ou reconnaître la sophistication dans le jeu, et vraiment croire que le jeu à ce niveau est encore finalement simple. Il n'est pas. Ces grands joueurs (beaucoup de temps) sont là, à la télévision parce qu'ils sont vraiment vraiment vraiment bon. Il y a aussi probablement un méta-jeu compliqué qui se joue, et dont notre ami ne peut reconnaître l'existence. L'amatuer ne voulait pas se tenir au-dessus d'un maître d'échecs et crier à eux pour déplacer leur Chevalier, pourtant, en raison de la dynamique du poker étant information imparfaite leur psychologie les fait vraiment croire ce qu'ils disent. Comme aux échecs, les décisions peuvent être complexes, délicates et extrêmement importantes pour le jeu dans son ensemble. Au fur et à mesure que la complexité du jeu augmente, les décisions triviales ne sont plus aussi triviales, car votre adversaire les attend.

une fois que vous déplacez votre bot ou votre jeu sur les niveaux, vous rencontrerez inévitablement une plus grande population de plus qualifiés joueur. Ensuite, la complexité de votre stratégie va devoir passer au niveau suivant, en prenant en compte images de table , Equilibrage de gamme , bluffing sophistiqué et intelligent (C'est-à-dire pas simplement bluffer à la faiblesse, bluffer à des gammes et bluffer sur l'image etc), avec une analyse plus détaillée de gamme de main. C'est vraiment un autre jeu que vous vous déplacez.

une fois qu'un bot gagnant a été écrit, sans doute le codeur aura assez de compétences, de connaissances et de bon sens pour appliquer le bot d'une manière indétectable. C'est trivial pour eux.

donc il n'y a vraiment rien que vous puissiez faire. Si vous voulez jouer en ligne, comprenez les risques. Ne jamais risquer plus d'argent que vous pouvez vous permettre, et tenter de garder des registres exacts des dépenses afin que vous n'avez pas une erreur, irréaliste et finalement dommageable sur l'estimation de votre propre capacité. Ont arrêter les pertes, et quitter la table si vous n'avez pas bord, ou si vous n'êtes pas sûr si vous avez un avantage! Bien sûr, si tout le monde faisait que personne ne gagnerait, c'est la nature prédatrice et exploitante du jeu, c'est d'où vient la compétition et c'est ce qui rend ça amusant.

209
répondu Tom Gullen 2011-02-04 19:51:54

Il y a trois zones distinctes à considérer. Le bot doit comprendre l'état de la table, prendre une décision, et de la renvoyer à l'hôte.

comprendre l'état de la table est beaucoup plus facile si elle est envoyée à travers le fil sous une forme reconnaissable ou affichée à l'utilisateur comme le texte standard. Tout d'abord, faire de la reconnaissance d'image la seule option, puis la rendre aussi difficile que possible. Affichez les cartes en 3D et changez lentement l'orientation et la position de la cartes de. Animer petits feux d'artifice ou devant les cartes de sorte que n'importe quel tir d'écran donné peut être illisible, mais il faut un certain temps même pour déterminer cela.

Il n'y a rien à faire avec la prise de décision. Essayer de décider si une décision a été prise par un humain ou non est comme un test de turing avec presque aucune information.

renvoyer la décision peut être rendu difficile en utilisant à nouveau 3D. Rendre difficile l'envoi de paquets directement ou autrement soumettre une décision par tout autre moyen que de cliquer sur un bouton avec la souris. Déplacez légèrement les boutons à chaque action ou faites-les flotter lentement autour de la zone de jeu en attendant une décision. Désactiver toute fonction d'accessibilité permettant de trouver ou de manipuler des boutons.

9
répondu drawnonward 2010-04-27 00:39:34

PokerPirate, comme presque tous les bot poker jamais écrit, fonctionne par screen scraping et simulant des clics de souris dans une application Windows poker. Par conséquent, le lynch-pin du système est sa capacité de reconnaître les objets dans le jeu et faire des actions dans la fenêtre. Aussi intelligent qu'il puisse être au poker, il a probablement encore des problèmes avec ces opérations de base.

par conséquent, les moyens évidents de contrecarrer ce bot seraient:

  1. mettre en œuvre un CAPTCHA, soit avant le match, ou lorsque d'autres facteurs suggèrent qu'un joueur peut être un bot.
  2. rend les graphiques de table plus compliquées, ou changer de thème tout au long du jeu.
  3. détecte des mouvements et des clics de souris inhabituellement rapides et/ou robotisés (un humain ne bougera jamais une souris dans une ligne mathématiquement parfaite).
8
répondu Cerin 2010-05-01 13:08:13

idéalement, la seule solution valable est de créer une logique honeypot qui attire un bot engagé en fournissant la tentation d'une condition logique plus favorable qui favorise les réponses comportementales les plus idéales du bot. Une fois que le bot est engagé dans le pot de miel, vous devez continuellement alimenter les conditions du bot qu'il préfère présumant que le bot n'a pas un délai fixé. Ensuite, le bot peut être mesuré, enregistré et étudié. En plus du bot, vous disposez également du réseau et des données de session isolé pour étude à condition que le bot ne se connecte pas via TOR.

dans cette situation les considérations déterministes appropriées pour différencier un bot d'un humain sont moins sévères, cependant, la considération déterministe lors de l'identification du comportement du bot devient plus sévère. Malheureusement, le propriétaire du bot peut faire des changements au bot pour empêcher une telle identification si ce propriétaire est au courant de l'état du pot de miel, ou la considération logique de celui-ci.

5
répondu 2010-04-27 06:05:04

vaincre les bots de poker peut prendre deux formes: vous pouvez essayer de les identifier et de les bannir du système, ou vous pouvez juste les battre au poker. Les battre au poker est la question académique plus intéressante. :- )

voir ici pour quelques papiers sur battre bots de poker: http://www.cs.cmu.edu/~sganzfri /

4
répondu Aaron 2010-07-02 20:24:34

Regardez ce billet

Ce post a aussi quelques bons conseils sur la façon de contrecarrer les.

3
répondu Romain Hippeau 2017-05-23 11:45:55

une Autre pensée sur la manière de jouer avec l'écran pour rendre plus difficile à analyser:

Faire la carte d'une flopée de couleurs différentes-près dans l'œil humain, mais pas le même. Cela rendrait plus difficile de choisir les choses à lire. De l'autre côté, mettez de fausses Écritures sur la carte dans des couleurs que l'oeil humain ne séparera pas de l'arrière-plan.

2
répondu Loren Pechtel 2010-07-02 21:44:23

Est le problème avec les bots le fait qu'ils jouent mieux que décent joueurs humains, ou qu'ils peuvent attendre 24/7 pour les mauvais joueurs à s'afficher, puis essayez de lait?

aussi, serait-il" légitime "ou" tricherie " pour quelqu'un d'avoir un ordinateur assis à côté de lui alors qu'il jouait au poker, consultant cet autre ordinateur pour des conseils?

Je ne suis pas sûr comment on peut revendiquer l'espace de la solution pour le poker de limite est "résolu" lorsque le optimal stratégie pour un joueur sera influencé par ce qui est connu sur les adversaires. Comment une tentative d'analyser les joueurs peut-elle prétendre être si parfaite qu'elle ne pourrait pas être améliorée?

2
répondu supercat 2010-07-02 22:51:16

si vous avez accès à beaucoup de correspondances, vous pouvez prendre une approche d'exploration de données. La force de jeu d'une IA devrait être assez cohérente, alors qu'il y a probablement des modèles simples pour les humains - plus faible dans les premiers tours d'échauffement, et la force se détériore après avoir joué pendant une longue période. En outre, les temps de décision humaine montent probablement quand il y a plus d'argent en jeu.

si vous avez accès aux mouvements de la souris (ou au moins cliquez sur les emplacements qui est vrai, même pour le web applications), il devrait être assez simple de reconnaître les bots, à l'exception des plus sophistiqués. Les humains ne déplacent pas la souris en ligne droite exacte, ils ont des périodes d'accélération et de ralentissement, des distributions de localisation de clic statistiquement descriptibles, etc.

1
répondu Tgr 2010-07-03 08:46:44

regarder Ajax Control Toolkit NoBot :

NoBot emploie quelques différentes techniques anti-bot:

* 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
répondu lmsasu 2010-08-09 08:02:23

une solution à 100% est impossible, ce que je veux dire c'est une solution qui permettra d'économiser de l'argent en utilisant L'IA contre elle-même. Avoir une instance de POKERPIRATE's AI tournant du côté du serveur et jouant comme un joueur invisible dans chaque jeu. Si un joueur exécute trop d'actions identiques, alors il exécute probablement une instance de PokerPirate. C'est une sorte de Honeypot ou piège dans lequel l'attaquant peut tomber. L'attaquant peut défendre contre ce honeypot en rendant leur bot moins de succès. Ainsi cela crée un venu de "chat et souris" dans lequel l'attaquant peut toujours voler certains argent et le défenseur peut toujours sauver certains argent.

0
répondu rook 2010-07-02 19:28:51

il y a des moyens beaucoup plus faciles. oui. beaucoup de suggestions sont bonnes et nécessaires. mais environ 90% des fraudes sont détectées de manière trop simple.

si quelqu'un laisse un robot travailler pour lui, il voudra, après un certain temps, qu'un second robot travaille pour lui. (une autre machine ou quoi que ce soit) mais: il va utiliser le même mot de passe, car il est difficile de se rappeler 2 (<--- sarcastique)

ce qui reste: vérifiez les comptes avec le même comportement de jeu et même hachage de mot de passe.

-2
répondu cRichter 2010-07-09 11:33:49