我想模仿扑克玩家。数学背景并将其纳入c ++非常疯狂。
标准52卡片组可让您制作1326张两张卡片的组合。然而,人们可以将这些卡分成169个类别,其中包含同构手:对(例如TT),适合(AsKs)和offsuited(AcKd)。这是常见的不可知扑克语言的一个子集,用于描述一组扑克玩家(TT +,22-55,A9s +等)
那说,我的问题是通过继承模拟169手和1326手之间的同态。 Imho是Hand1326 id,源自Hand169。因此类看起来像
struct Hand169 {
int rank1, rank2;
//private:
//bool suited;
};
struct Hand1326 : Hand169 {
int suit1, suit2;
};
但现在的问题是,Hand169应该有关于适合性的信息(bool suit
),这在Hand1326中是多余的,因为suit1
和suit2
隐含地提供了这些信息。通过rank1
和rank2
隐含地提供有关对或不对的信息。
有没有更好的方法来模拟这个,没有冗余?