2009-07-29 144 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