我对编程技巧越来越有信心,所以我决定重新开始我以前开始的纸牌游戏。这一方案的关键是现在我有程序流程,变量,条件体面的把握等等,我想加深我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对象上调用这些方法。 –