← ショーケース / ケース 01

ケーススタディ

Counterplay · 过招

開発者が利用できるのと同じ Pokerai API を通じて、5 人の GTO 相手がすべてのハンドをプレイするネイティブの 6-max、100BB トレーニングテーブルです。Counterplay はヒーローのすべての意思決定を記録し、返された頻度に照らして評価し、繰り返される逸脱をリークレポートにまとめ、基礎となるハンドをレビューや任意の根拠に基づくコーチングに備えて保持します。

270行 — APIクライアント全体
0キャッシュされた戦略
10使用中の API エンドポイント

更新日 · メンテナンス担当 Pokerai API

Counterplay / iOS実際のプロダクトインターフェース
Counterplay iOSライブトレーニングテーブル
Counterplay iOS 解析レポート

01 / アーキテクチャ

ポーカーエンジンがハンドを管理し、Pokerai API が戦略を管理します。

Counterplay はゲームメカニクス、セッション状態、戦略上の真実を分離します。PokerKit が 6 人テーブルを進行させ、トレーナーサービスが順序付けられたアクションライン、有効スタック、レンジ、レビューコンテキストを保持し、Pokerai API が事前解析済みの検索結果またはリアルタイムのソルバー出力を提供します。同じレスポンスで、アプリに非公開のチャートを埋め込むことなく、相手のプレイ、ヒーローの評価、レンジの可視化、後のコーチングを実現できます。

01 / 体験

iOSアプリ

PokerKit のゲームメカニクスと意思決定の記録を備えた SwiftUI インターフェース。

02 / 状態

トレーナーのバックエンド

FastAPI が現在のハンド、アクションライン、レンジ、レビューコンテキストを保持します。

03 / 戦略

pokerai.bet

事前解析済みのプリフロップとフロップの戦略に加え、キューに入れたターンとリバーの解析。

02 / プロダクトループ

テーブルでトレーニング。パターンを見つける。ハンドを再度開く。

このプロダクトは、単一のソルバー応答を公開するだけではありません。個々の意思決定を解析レポートに変換し、その元となるハンドをレビューと継続的な学習に使えるよう維持します。

解析レポート

繰り返される逸脱を確認する

類似する意思決定をグループ化し、サンプル数と平均偏差を表示したうえで、繰り返されるプリフロップおよびポストフロップのパターンを深刻度でランク付けします。

繰り返される GTO の逸脱を示す Counterplay の解析レポート
ハンド履歴

まったく同じ局面に戻る

ハンド、ポジション、またはカードで検索し、結果と純 BB を確認してから、レポートの元となった正確な意思決定シーケンスを再度開きます。

最近のトレーニングハンドを含む Counterplay のハンド履歴
ディスカッションと検索

ハンドを最後までプレイせずにスポットを学ぶ

迅速な事前解析済み検索または正確なライブ解析を選び、ポットとポジションを設定して、その結果を焦点を絞った議論に活用します。

迅速かつ正確な GTO 学習のための Counterplay 検索画面
トレーナー設定

言語、テーブル識別情報、コーチングモデルを管理

プレイヤーがロケール、テーブル識別情報、説明に使用する任意のモデルを選択できる一方で、トレーニング画面の焦点を維持します。

言語、プロファイル、コーチングモデルのコントロールを備えたCounterplay設定

03 / エンドポイント一覧

すべてのストリートが文書化された API 機能に対応します。

実際のクライアントから追跡(メソッド → エンドポイント → 使用箇所):

プリフロップ/v1/gto/preflop

相手のプリフロップアクション + ヒーローのプリフロップ意思決定を評価

プリフロップ/v1/gto/preflop/range

レビューに表示される13×13のレンジグリッド

フロップ/v1/gto/flop/tree

フロップ場面のポストフロップ意思決定ツリー

フロップ/v1/gto/flop/node

現在のフロップノードにおける戦略(+ 評価)

レンジ/v1/gto/flop/projected-range

フロップのアクションラインに沿ってレンジを更新

レンジ/v1/gto/range

アクションラインの solver_results を組み立てる

ターン/v1/gto/turn/projected-range

フロップ → ターンのレンジ引き継ぎ

ソルバー/v1/gto/solver

ターン/リバーの場面をリアルタイム解析のために送信

ソルバー/v1/gto/solver/tree

解析済みのターン/リバースポットの意思決定ツリー

ソルバー/v1/gto/solver/node

ターン/リバーの意思決定ノードにおける戦略(+ グレーディング)

04 / 実装の証明

戦略レイヤー全体は1つのファイルに収まります。

クライアントはチャートや解析結果を埋め込みません。現在のスポットを整形し、認証済みリクエストを送信して、正規化した戦略頻度をトレーナーに返します。

01共有の認証ヘッダーは 1 つです。
02公開エンドポイントにちなんで命名された型付きメソッド。
03すべてのストリートで共通のタイムアウトと再試行経路。
04アプリケーション内に独自の戦略キャッシュはありません。
app/gto/client.pyシンクライアントの抜粋
class GtoClient:
    def __init__(self, settings):
        self._headers = {"Authorization": f"Bearer {settings.gto_api_key}"}

    async def preflop(self, hole_cards, hero_pos, preflop_actions):
        body = {"hole_cards": hole_cards,
                "positions": {"hero": hero_pos},
                "preflop_actions": preflop_actions}
        return _strategy_from(await self._post("/v1/gto/preflop", body))

    async def flop_node(self, node_token, hole_cards=None):
        body = {"node": node_token}
        if hole_cards: body["hole_cards"] = hole_cards
        return _strategy_from(await self._post("/v1/gto/flop/node", body))
    # … + solver_schedule / solver_tree / solver_node, all one-liners over _post()

05 / 意思決定ループ

配られたハンドから根拠に基づくフィードバックへ。

01 / プリフロップ

ラインを読む

カード、ポジション、順序付きアクションを送信し、返された頻度をプレイと評価に使用します。

02 / フロップ

ツリーをたどる

事前解析済みツリーを読み込み、アクティブなノードを解析し、各アクション後のレンジを投影します。

03 / ターン + リバー

解析をキューに追加

ハンドレンジをリアルタイムソルバーに渡し、ジョブをポーリングしてから、生成された戦略ノードを読み取ります。

04 / 確認

評価して解説

選択したアクションをその GTO 頻度で評価し、構造化されたコンテキストを任意のコーチに渡します。

対象範囲と出所

Counterplay は Pokerai API が保守する Pokerai API の製品統合です。第三者顧客による導入事例として提示されているものではありません。 この技術記録は、iOS トレーナーのワークフローと、そのワークフローで使用される公開 API エンドポイントを記録しています。 現在の製品は、6人制100BBキャッシュゲームのトレーニングを対象とし、ヒーローの席をランダム化し、戦略に基づく5人の相手を使用し、マルチウェイのポストフロップスポットをヘッズアップの近似に簡略化します。コーチングは任意です。Counterplay はリアルマネーテーブルでのリアルタイム支援を有効にしません。このページは、顧客導入、ダウンロード数、ベンチマーク性能、商業パートナーシップ、または外部からの支持について、いかなる主張もしていません。

同じ API で構築する

戦略をプロダクトに変える。

無料キーから始めて、プリフロップの呼び出しを 1 回行い、ここで使用されている同じ公開エンドポイントを利用してください。

API キーを取得 · 無料