使用继承建模同态

时间:2013-12-31 15:56:22

标签: c++ oop dry modeling homomorphism

我想模仿扑克玩家。数学背景并将其纳入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中是多余的,因为suit1suit2隐含地提供了这些信息。通过rank1rank2隐含地提供有关对或不对的信息。

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

0 个答案:

没有答案