web-dev-qa-db-ja.com

プログラムでポーカーオッズを計算するにはどうすればよいですか?

私はポーカーオッズを計算するための簡単なゲーム/ユーティリティを書こうとしています。私はそうするための公式について語る resources がたくさんあることを知っていますが、それをコードに変換することに問題があると思います。特に、テキサスホールデムに興味があります...

私はいくつかの異なるアプローチがあることを理解しています。1つは、あなたが見ることができるカードに基づいてあなたがいくつかのハンドを引く確率を計算できることです。もう1つのアプローチは、特定のハンドを獲得する確率を計算することです。 2番目のアプローチは、より多くのデータ(プレーヤーの数など)を入力する必要があるため、はるかに複雑に見えます。

あなたが私のためにそれを書くことを私は求めていませんが、正しい方向のいくつかのナッジは役に立ちます:-)

34
Joel Martinez

以下は、開始点として役立つ記事へのリンクです。 C#のポーカーロジック および 高速、テキサスホールデムハンドの評価と分析

"このコードスニペットでは、C#と.NETを使用して、ポーカーの確率を難しい方法で計算できます。"

理論的な基礎は、この ポーカーの確率に関するウィキペディアの記事 およびこの優れた 統計のチュートリアル に記載されています。

Objective-C、Java、C/C++またはPythonで記述された完全なプロジェクトの例は SpecialKEval にあります。詳細なリンクと参考資料はここにあります。

21
splattne

モンテカルロシミュレーションは、ポーカーハンドのオッズ計算を取得するための一般的なアプローチです。ネット上のホールデムにこの種のシミュレーションを実装する例はたくさんあります。

http://www.codeproject.com/KB/game/MoreTexasHoldemAnalysis1.aspx

8
Joel Cunningham

Pokersourceと統計記事は悪い提案ではありません。しかし、これはモンテカルロシミュレーション、つまりこの種の困難な問題への便利でシンプルで強力なアプローチを使用して行うのが本当に最善です。

ホールデムと同様に、オマハハイローでも同様に機能します。

2
Steve McLeod

こちらもご覧ください。

http://specialk-coding.blogspot.com/2010/04/texas-holdem-7-card-evaluator_23.html

モンテカルロシミュレーションは、正確なエバリュエーターよりも遅いことがよくあります。

1
SK9

適度に強力なCの能力がある場合は pokersource を見てください。それは単純ではありませんが、恐れますが、あなたが探しているもののいくつかは複雑です。ライブラリを使用するpoker-evalプログラムは、入力フォーマットを正しく(簡単ではない)取得できる場合、おそらくあなたが望むことの多くを実行します。 this one または this などのサイトもこのライブラリAFAIKを使用します。

それでも、もっと悪いことかもしれません。オマハハイローのようなトリッキーなものを計算したいと思うかもしれません...

1
Mike Woodhouse

テキサスホールデムポーカーゲームエバリュエーターの完全なソースコードは、次の場所にあります。

http://www.advancedmcode.org/poker-predictor.html

これはMATLAB用に構築されており、GUI IDはmコード化されていますが、計算エンジンはc ++です。

オッズと確率計算が可能です。私の2.4Ghzラップトップでは、0.3秒で10万人のプレイヤーのゲーム計算を処理できます。

正確なリアルタイムコンピュータ:-)

0
user240092