ポーカーハンドのモデルになりたいです。数学的なバックグラウンドとそれを C++ に取り込むことは、非常に正気ではありません。
標準的な 52 枚のカード デッキでは、2 枚のカードの組み合わせを 1326 通り作成できます。ただし、これらのカードを 169 のカテゴリに分けることができます。カテゴリには、ペア (TT など)、スーテッド (AsKs)、オフスーテッド (AcKd) などの同形のハンドが含まれます。これは、一連のポーカーハンド (TT+、22-55、A9s+ など) を記述する一般的な不可知論的ポーカー言語のサブセットです。
そうは言っても、私の問題は、継承を介して 169 の手と 1326 の手の間の準同型をモデル化することです。Hand169から派生したHand1326 IDです。したがって、クラスは次のようになります
struct Hand169 {
int rank1, rank2;
//private:
//bool suited;
};
struct Hand1326 : Hand169 {
int suit1, suit2;
};
しかし、ここでの問題は、Hand169 が適性に関する情報 ( bool suit
) を持っている必要があることです。これは Hand1326 では冗長になりsuit1
ますsuit2
。rank1
ペアであるかどうかに関する情報は、およびを通じて暗黙的に与えられrank2
ます。
冗長性なしで、これをモデル化するより良い方法はありますか?