2009-07-29 93 views
0

现在我正在编写一个程序,它将确定一张牌的价值。总共五个。我有一个cardHand对象。我正在计划编写一个对象,将两个对象进行比较,以确定哪只手具有更高的值。将要比较的两个对象是包含可能的手形值的对​​象(一对,三种......等)。OOP风格问题

会stackoverflow看到这是一个合适的OOP方法?

PS:我知道算法在互联网上浮动,但我试图通过我自己做的第一次为XP。

回答

2

什么你想要做的是这样的:

  • 创建一个卡类。为此课程添加operator<,以便确定单个卡片的分类。
  • 创建一个卡片收集(手)类,用于存储这些卡片的集合。为这个类定义一个运算符<,以确定手的排序。

如果您将手中的牌存放在std::multiset中,则手牌中的牌将自动组合在一起。

也就是说,如果您插入2, 7, 3, 4, 3,它们将按以下顺序排列:2, 3, 3, 4, 7。这将帮助您确定配对和连音符等。

+0

+1路要走。在合理的地方使用运算符重载,以允许对象的“标准处理”。或者换句话说:使你的对象尽可能不与基本对象区分开来。 这种方式是共同处理和理解的幸福。 – 2009-07-29 07:43:43

0

不应该每个手对象有一个天生的价值?然后你可以有另一个物体(经销商?)比较每只手的价值。经销商也可以用来实例化每个手对象。

然后,也许我正在考虑整个'建模问题域'的方法有点过分。 ;-)

0

定义决定哪只手较高的规则。

rule1> rule2> rule3 ...

从最大的一个比较。

决定手是否符合rule1而不是hand1。

决定手是否适合rule2而不是hand2。

..

,如果他们在相同的规则,使一样,每一个规则内的算法。

它仅仅是一个想法......你可以想想..

+0

我想我认为这是扑克? – ufukgun 2009-07-29 07:31:20