[解決済み] ポーカーボットを倒す
質問
という新しいオープンソースのポーカーボットがあります。 ポーカーパイレーツ . 私は、ウェブアプリケーションがポーカーボットを検出したり、叩いたり、倒したりできるような創造的な方法に興味があります。 (これは PokerPirate が書かれたのと同じ精神で、純粋に学術的な議論です)。
どのように解決するのか?
サーバーサイドから見たボットの倒し方
-
多くのオンラインポーカーサイトでは、ポップアップ キャプチャー が表示されます。 を入力しています。
-
一部のポーカーサイトでは、プレイ時間やパターン 時間やパターンを監視しているサイトもあります。 シナリオは、24時間365日、16テーブルを連続プレイするプレイヤーを想定しています。 と16のテーブルを続けてプレイするプレイヤーです。 の可能性があります。 人間である可能性はごくわずかです。(ただし、一部のプレイヤーは は非常に大きなハンドボリュームをプレイする能力を持っています。 があり、経験不足の目にはボットのように見えるかもしれません)
-
不具合は投げろ。 もし、あるプレイヤーが プレイヤーをボットだと思ったら、そのプレイヤーの カードの位置を数ピクセルずらし を変えたりしてください。 色・デザイン・パターンを変える 1/100の手札のために、異なる色、デザイン、パターンにし、それが投げられるかどうか見てください。 それらを投げるかどうかを確認します。 もしスクリーンショットができない場合は すべての判定でタイムアウトになります そしてそれはかなり決定的なbotの証拠である。 という証拠になります。
-
タイミングは、もしコンピュータのプレーヤーが ミリ秒単位で選択肢に反応します。 一度に、考える間もなく 大きな決断を迫られたとき、これは 疑わしい
-
自己監視をする ポーカーサイトが pokertableratings.com データ は、多くの大規模なサイトをマイニングしています。 これは 様々な反響がありました。 その透明性を高く評価する人もいます。 その他 嫌い . しかし、メリットはあります。 その があることです。 を、「怪しいプレイヤー 統計 (VPIPパーセンテージ。 PFRパーセンテージは数ある統計の中で 定量化できる統計は数多くあります。 記録することができます)は、不正行為の結論につながる 不正行為であるという結論に至りました。
-
人為的な知能 分類ネットワーク は 定量的な統計情報を監視し 不正行為やロボットのようなプレイヤーを分類することができます。 を分類することができます。
-
オンラインポーカーがかなり新しい存在であった頃 噂がありました。 という噂がありました。 という噂がありました。 いくつかのポーカークライアントソフトウェア 不審なプレイヤーのスクリーンショットを を実行しているかどうかを確認するために、デスクトップ を実行しているかどうかを確認した、という限られた証拠があります。 しかし (これが事実だとしても)、2 台のコンピューターを動かして 2 つのタスクを独立して実行すれば、これを回避することができます。
-
複数のサイト間での再犯者間の情報共有 複数のサイト間での犯罪者の情報を共有することは は、業界にとって有益であろう。 彼らが高潔でさえあれば によって運営され 有能で責任感のある人たち
-
いくつかのボットは、おそらく設計上非常に もしあなたが彼らのプレイスタイルを発見し プレイスタイルを発見し、同じ状況でどのように行動するか を見ることができれば(ただし、これは が可能なのは をする素朴なボットだけです。 基本的な戦略をとる素朴なボットのみ可能)。 を発見することができます。
-
プログラムの機能の一貫性のない使用は 機能を使っている場合は が本物であることに傾きます。 例えば 例えば、多くのポーカーサイトでは、ゲーム中に 自分の番が来たらフォールドする」ボタンがあります。 ボタンがあります。 もし、悪い手が配られ が配られ、他のプレイヤーの判断を待っている場合 を待っているとき、多くのプレイヤーがこのボタンを 多くのプレイヤーはこのボタンをチェックします。 ボットがこれらのボタンを使用することもあります。 ということです。 ボットは、常に使うか、全く使わないかのどちらかでしょう。 プレイヤーは通常 autofold "を押すかもしれませんが、時々、"fold "を押すかもしれません。 をクリックすることがあります。 をクリックすることがあります。 例えば 本物のプレイヤーは を押すのですが、今回は押しません。 フォールドされ、他のプレイヤーがアクションしていない状態です。 他のプレイヤーが行動していない状態で、彼らにフォールドが回ってきました。 最も有利な条件を提示されたことになります。 最も有利な条件が提示されたのです。 今 フォールドを押したら、彼らは 最初からオートフォールドを押す傾向が強かったのです。 これは これは、矛盾した、最適化されていない、ランダムな 行動であり、人間であることに一貫しています。 人間らしい行動です。 これらの機能がクリックされるタイミングは、他の指標となります。 これらはすべて指標であり、決定的な証拠ではないことを認識することが重要です。 これらの行動指標はすべて簡単にシミュレーションすることができます。
プレイヤーから見たボットの倒し方
-
以下のようなソフトウェアを使って、できるだけ多くのデータを記録し、収集するようにしましょう。 ポーカートラッカー
-
演奏スタイルのパターンを識別する試み そのプレイスタイルの
-
ベットサイズと ベットサイズと とハンドの強さの関係を見つける試み
-
その ハンドレンジ . ローステークス用ロボットは、おそらく戦略上重要な意味を持つほど頻繁にブラフを行うことはないでしょうから、高精度のハンドレンジを構築することはそれほど難しいことではないはずです。
-
以下を見つけることを試みます。 リーク を発見する試みです。 データ解析と試行錯誤で、ゲームの 試行錯誤する。 を発見したら、それを繰り返し利用するようにします。 を繰り返し、それ以外の状況を回避する。 を避けるようにします。
人間が可能なところ 適応 ができるところでは、ボットはおそらくそれほどでもないでしょう。 チルト , 結果指向の思考 そして フラストレーション は、ボットはそうではありません。 これを利用することができます。
つまり要するに、ロボットが十分に賢く、判断の際の実際のタイミングの遅れをシミュレートし、合理的で現実的なプレイパターンを作成できるのであれば、それを止めることはできないのです。 いくつかのランダムな条件と簡単なバック チャット (ポーカー プレイヤーの辞書では 通常かなり限定された を使えば、AIプレイヤーを発見するのはかなり難しいでしょう。
ボットが発見されないようにするために行うこと
発見されないための鍵は、できるだけ多くの角度からこの問題を考えることでしょう。 あなたは、非常に小さく制限された世界で、知的な人間の行動をシミュレートしようとしています。 実行できる行動シミュレーションのほとんどはかなり明白ですが、ボットが一貫性がなく予測不可能であればあるほど、発見される可能性は低くなります。
-
現実的なプレイスケジュールを作成する (週3~5回、1回4時間、奇数週は1回4時間など。 を1回4時間、奇数週を1回とする。 を作る。)
-
別のコンピュータで意思決定をするためにプログラムを実行し 別のコンピュータで決定するプログラムを実行し ゾンビコンピュータを制御する。 画面キャプチャを行います。
-
行動のタイミングをランダムにする(すぐに行動せず すぐに行動せず、1回の行動につき0.5~2秒待つ アクション)
-
大きな決断に時間をかける もし 決定がボーダーラインにある場合、計算し を計算し、しばらく待って 思考する。
-
クライアントソフトウェアの機能をランダムに使用する。 トイレ休憩をシミュレートするために をクリックすることで、トイレ休憩をシミュレートします。 をクリックし、5分間の休憩を取る。 をクリックし、5 分間の休憩を取る。
-
ポーカーチャットは、多くの場合 非常にシンプルな一行で、決して 通常、議論や討論はありません。 例えば アンラッキー」とか「ストゥー」とか。 などと言います。 あるいは コーダーが自分のボットを監視し ボットを監視し、実行中にチャットに参加させることもできます。 実行中にチャットに参加することもできます。
-
マウスの動きがリアルであることを確認します。 現実的であることを確認します。 もしテーブルが タイル型 で判断しないで 左上のテーブルで決定せず、右下のテーブルで即座に決定する 右下のテーブルの上に。 ほとんどのサイトソフトはキーボードショートカットを提供しており、マウス移動の代わりにこれらを使用することが望ましいでしょう。
-
単純にAI は期待しないでしょう。 例えば 例えば、年に一度、電話をして 複雑でない簡単なクエリ("Help I can't today! とか、「インターネットがダウンしています。) しかし、ポーカー会社で働く人が十分に賢明であれば、それを現実的な指標として認識している可能性があります。
-
散発的な負けセッション。 ティルトは シミュレートすることができ、ボットがプレイすることができます が悪く、時々お金を失うことがあります。 ということがあります。 みんな どこかで傾く という点があります。
懸念されるのは、ポーカーウェブサイトは、ボットがネットワーク上で動作していても特に気にしないということです。各プレイヤーは多額のレーキの価値があり、純粋に皮肉なビジネスの観点から理論的には、それが発見された場合の唯一のマイナス面は悪評になるでしょう。
あからさまな悪用が発見された場合でも、(googleで検索してみると セレウスネットワーク の不祥事や アブソリュート・ポーカー・スキャンダル は非常に衝撃的です)、ビジネスが生き残り、健全さを保ち、よく教育され勝ち組のプレーヤー(多くはありませんが)を失うだけであるように見えます。 このため、ネットワークに占めるスキルの低いプレイヤーの割合が増え、その結果、優秀なプレイヤーが戻ってくるのです。 これは、古き良き時代の「キャッチ22」です。 適切な市場規制のための優れた議論です。
ここで重要なのは、すべてのゲームにおいて、ナッシュが 均衡が存在する . オンラインポーカーには時間軸があり、将来的にはもっと社会的なもの(ウェブカメラやボイスメール)に移行しなければならないでしょう。 ポーカーAIコミュニティは 非常に活発です。 であり、学問や資本の利益によって活性化されています。
リミット・ポーカーなど、よりシンプルなポーカーもあります。 ほぼ解決しています。 を小さな探索空間で解くことができました。 より複雑なゲーム(ノーリミットバリエーション/)は、時間の問題です。 ポットリミットオマハ など)が、人工的なプレイヤーでも勝てるようになるのは時間の問題でしょう。
結論
業界がよりソーシャルなオンライン ゲーム設定に移行するまでは、高度なボットを検出することはできません。 これは問題を解決するものではありませんが、低レベルでボットが勝利するのを難しくすることは確かです。 私たちは、すでに PKR , 3Dと、よりインタラクティブな で、マルチテーブルがプレイヤーにとってかなりトリッキーな他のサイトの時間あたりの手数が少ないバージョンです。
この問題は、業界の性質にも起因しており、評判がますますビジネス モデルに統合されている、より評判の高い大規模なウェブサイトに固執するもう 1 つの理由です。 透明性の欠如と 見せかけのトランザランシー は、原因を解決してくれません。
現在、ボット開発者にとっての本当の挑戦は、勝つためのアルゴリズムを書くことですが、これは見かけほど簡単なことではありません。 ポーカーをプレイする人は皆、自分が上手で、勝っているか、収支が合っていると考えていますが、それは単に真実ではありません。 そのため、人々はお金を失ってもプレイを続け、単に運が悪かったり、自分のプレイスタイルが誤解されていると錯覚しているのです。 この傲慢さと人間心理の弱さが、負けたプレイヤーに多大な損失を与えており、ポーカーがまだ利益を上げられる根本的な理由なのです。
ポーカーは非常に複雑なゲームで、うまくなるには何年もかかります(古い格言に「学ぶには10分、マスターするには一生」というのがありますが、これは真実です)。 運の要素は、長期的には極めて限られています。
他の職業と同じように、上手になるためには、何百時間、何千時間と勉強し、何千時間とプレイする必要があります。 経験の浅いプレイヤーには理解できないことを理解し、経験の浅いプレイヤーには見抜けないことを見抜くことができるようになります。 この学習はとても長い間、おそらく私たちが生きている間よりも長い間続くのです。 それは複雑なゲームです。
テレビでハイステークスのキャッシュゲームを見たとき、誰かが「簡単なコールだ!」と叫んでいるのを何度聞いたことでしょう。こうして、アマチュアは本当にプレイの高度さを理解したり認識したりせず、そのレベルのゲームはまだ究極にシンプルだと信じていることが証明されます。そうではありません。 そういう高額賞金のプレーヤーが(多くの場合)テレビに登場するのは、彼らが本当に 本当に 本当に 良いことです。 また、アマチュアにはその存在を認識できないような、複雑なメタ・ゲームも行われていることでしょう。 アマチュアはチェスの名人の前に立ちはだかり、ナイトを動かすように怒鳴ったりはしませんが、ポーカーは不完全な情報であるため、彼らの心理は彼らの言うことを本当に信じてしまうのです。 チェスのように、判断は複雑で繊細であり、ゲーム全体にとって非常に重要です。 ゲームが複雑になればなるほど、些細な判断が些細でなくなっていきます。
あなたのボットやゲームをレベルアップさせると、必然的に、より熟練した多くのプレイヤーに出くわすことになります。 そうなると、あなたの戦略の複雑さは、次のレベルに上がる必要があります。 テーブル画像 , レンジバランシング 洗練された知的なブラフ(弱点を突くブラフだけでなく、レンジを突くブラフ、イメージを突くブラフなど)、より詳細なハンドレンジ分析など。 上達すると本当に別のゲームになるのです。
勝てるボットを書いたら、間違いなくコーダーはそのボットを検知されないように適用する十分な技術、知識、常識を持っています。 これは彼らにとっては些細なことです。
ですから、あなたができることは本当に何もありません。 オンラインでプレイしたいのであれば、リスクを理解すること。 自分の能力について、誤った、非現実的な、そして最終的には損害を与えるような過大評価をしないように、余裕資金以上のリスクを負わず、支出を正確に記録するように努めてください。 ストップロスを設定し、エッジがない場合、あるいはエッジがあるかどうかわからない場合はテーブルを離れることです。 もちろん、みんながそうしていたら誰も勝てないでしょう。それがゲームの捕食的、搾取的な性質であり、そこから競争が生まれ、それが楽しさにつながるのです。
関連
-
[解決済み] 後で平文を取り出すためのユーザーパスワードの保管について、倫理的にどのように取り組むべきでしょうか?
-
[解決済み] SSOはCASかOAuthか?
-
[解決済み] サーバー側に送信する前にパスワードをハッシュ化した方が良いですか?
-
[解決済み] セッションハイジャックを防止する最善の方法は何ですか?
-
[解決済み] なぜ、すべてをHTTPSにしないのか?
-
[解決済み] Firefoxの同一生成元ポリシーを無効にする
-
[解決済み] PHP セッションセキュリティ
-
[解決済み] ステートレス(セッションレス)・クッキーレス認証を行うには?
-
[解決済み] ファイル暗号化におけるAESとBlowfishの比較
-
[解決済み] Firebaseのデータ改変を制限するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン