0

我想模拟扑克手。数学背景并将其融入 C++ 非常疯狂。

标准的 52 张卡片组可让您制作 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 应该有关于适合度 ( ) 的信息,这在 Hand1326 中是多余的,bool suit因为隐含地提供了这些信息。关于对与否的信息通过 和 隐含地给出。suit1suit2rank1rank2

有没有更好的方法来模拟这个,没有冗余?

4

0 回答 0