PokerOddsCalcは、テキサス ホールデムやオマハ ポーカーのバリエーションをシミュレートできるシンプルなポーカー ハンド評価ツールです。現在、Python で書かれた純粋なポーカー オッズ計算機のほとんどは、ハッシュテーブルを使用してカード情報をビットとして保存してパフォーマンスを向上させるか、強力な OOP 設計を使用してパフォーマンスを犠牲にしています。このプロジェクトの開発目標は、ハッシュテーブルを使用せずに比較的高いシミュレーション効率を達成することです。
このツールがサポートするすべての機能を確認するには、 demo.ipynbをチェックしてください。または、いくつかの簡単な例については以下に進みます。
githubからインストール
$ pip install git+https://github.com/johnsoong216/PokerOddsCalc.git
データを高速に処理するために、すべてのカード情報は numpy 配列に変換され、速度が向上します。
カード入力は、数値: 23456789TJQKA の後にスーツ: dcsh が続く形式で取得されます。
カードをランク付けするには、16 進法を使用して、最も重要なカードから最も重要でないカードまでカードの強さを割り当てます。ポーカーには 7462 の異なるハンドがあるため、ハンドを整数値に変換するアルゴリズムを作成しました。
まず、5 枚のカードの組み合わせがスーテッド/ストレートかどうかを判断します。これにより、いくつかの手のタイプをすばやく識別できます。
次に、2 ~ A が 2 ~ 14 の整数で表されるカードの数値を処理します。
カードの種類をすぐに識別できるようにカードを分類します。
最初のステップ
第二段階
第三段階
結論
ゲームのインポート
from PokerOddsCalc import HoldemTable , OmahaTable
ゲームを作成し、プレイヤー数とデッキタイプ(フルデッキまたはショートデッキ)を指定します。
ht = HoldemTable ( num_players = 5 , deck_type = 'full' ) # Will Create Three Players: Player 1 - 5
ゲームの任意のステップで next_round() 関数を呼び出してカードをランダムに配るか、手動で割り当てます
ht . add_to_hand ( 1 , [ 'Td, ' Ad ']) # Assign Player 1
ht . next_round () # Assign all other players randomly
シミュレーションして結果を生成し、シナリオの数とオッズ計算タイプを指定します (詳細については、 demo.ipynb を確認してください)
ht . simulate ()
#
{ 'Player 1 Win' : 50.31 ,
'Player 1 Tie' : 3.84 ,
'Player 2 Win' : 12.09 ,
'Player 2 Tie' : 0.41 ,
'Player 3 Win' : 11.4 ,
'Player 3 Tie' : 3.84 ,
'Player 4 Win' : 11.05 ,
'Player 4 Tie' : 0.41 ,
'Player 5 Win' : 11.31 ,
'Player 5 Tie' : 0.41 }
現在のテーブル、現在のハンド、または現在の結果を表示 (ゲームが終了した場合)
ht . view_table ()
ht . view_hand ()
ht . view_result ()