現在我正在編寫一個程序,它將確定一張牌的價值。總共五個。我有一個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