现在我正在编写一个程序,它将确定一张牌的价值。总共五个。我有一个cardHand对象。我正在计划编写一个对象,将两个对象进行比较,以确定哪只手具有更高的值。将要比较的两个对象是包含可能的手形值的对象(一对,三种......等)。OOP风格问题
会stackoverflow看到这是一个合适的OOP方法?
PS:我知道算法在互联网上浮动,但我试图通过我自己做的第一次为XP。
现在我正在编写一个程序,它将确定一张牌的价值。总共五个。我有一个cardHand对象。我正在计划编写一个对象,将两个对象进行比较,以确定哪只手具有更高的值。将要比较的两个对象是包含可能的手形值的对象(一对,三种......等)。OOP风格问题
会stackoverflow看到这是一个合适的OOP方法?
PS:我知道算法在互联网上浮动,但我试图通过我自己做的第一次为XP。
什么你想要做的是这样的:
operator<
,以便确定单个卡片的分类。如果您将手中的牌存放在std::multiset
中,则手牌中的牌将自动组合在一起。
也就是说,如果您插入2, 7, 3, 4, 3
,它们将按以下顺序排列:2, 3, 3, 4, 7
。这将帮助您确定配对和连音符等。
不应该每个手对象有一个天生的价值?然后你可以有另一个物体(经销商?)比较每只手的价值。经销商也可以用来实例化每个手对象。
然后,也许我正在考虑整个'建模问题域'的方法有点过分。 ;-)
定义决定哪只手较高的规则。
rule1> rule2> rule3 ...
从最大的一个比较。
决定手是否符合rule1而不是hand1。
决定手是否适合rule2而不是hand2。
..
,如果他们在相同的规则,使一样,每一个规则内的算法。
它仅仅是一个想法......你可以想想..
我想我认为这是扑克? – ufukgun 2009-07-29 07:31:20
+1路要走。在合理的地方使用运算符重载,以允许对象的“标准处理”。或者换句话说:使你的对象尽可能不与基本对象区分开来。 这种方式是共同处理和理解的幸福。 – 2009-07-29 07:43:43