我對編程技巧越來越有信心,所以我決定重新開始我以前開始的紙牌遊戲。這一方案的關鍵是現在我有程序流程,變量,條件體面的把握等等,我想加深我OOP用紙牌遊戲OOP設計Quesiton
的理解所以我需要在面向對象的設計
一些建議我卡牌遊戲將有5類:
- 主要
- 卡
- 甲板(具有-A卡的ArrayList)
- 播放器(具有-A卡的卡的ArrayList對象REC從甲板對象eived)
- 經銷商
我想知道如果這將是適當的OOP使經銷商類的接口。所有玩家都應該能夠扮演經銷商的角色,但不用說,每張牌只有一個經銷商。即使在任何給定回合中的8個Player對象中有7個不會使用他們實現的方法,並使玩家類實現經銷商可以執行的方法(例如dealGame())當時被認爲是經銷商?或者,讓dealGame()方法屬於Deck類並調用套牌來處理遊戲會更好嗎?對不起,如果這是一個愚蠢的問題,但我有點粗略的OOP的原則,並希望一些建議,學會做的第一次。
我也想過讓經銷商擴展玩家,但我認爲這是錯誤的,因爲我需要玩家在飛行中承擔經銷商的角色,而不是以不可變的方式聲明爲經銷商對象。在這種情況下 - 如果經銷商延伸播放器 - 我想我需要宣佈遊戲的所有玩家爲經銷商。
所以基本上我問:
- 如果你犯了個紙牌遊戲,這5類,你會令經銷商類的接口,其餘的普通班,爲什麼或者爲什麼不呢?
- 我一般在OOP的正確軌道還是完全失去了?
你似乎大多在正確的軌道上。雖然我不確定'Dealer'類。也許一個更好的想法可能是一個'Game'類,它跟蹤元元素。它處理卡組的實際交易情況,跟蹤哪些玩家已經摺疊等等,以及哪個玩家是經銷商,保持得分等。 – nhgrif
我在現實生活中知道玩家交易,但是實際上是否存在交易在這個真實生活的模擬中?我的意思是玩家身份作爲玩家以任何方式與他們的身份作爲經銷商聯繫在一起 –
對於我來說,dealGame()等方法屬於其他一些與遊戲相關的類。玩家不是經銷商就只是布爾標誌的問題,這會讓他們有權在某種Game或Table對象上調用這些方法。 –