作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我要为我的纸牌游戏 (gin rummy) 创建玩家和 AI 玩家(AIBasicPlayer、AINormalPlayer 和 AIHardPlayer)类。创建上述类的最佳 OOP 或设计模式方法是什么?我查看了一些开源纸牌游戏并比较了它们的方法,以下是我收集的方法:
***Classes**
1. player class only
public class player{
}
public class AIPlayer{
}
2. base class player
public abstract class player{
}
public class HumanPlayer extends player{
}
public class APlayer extends player{
}
3. interface player
public interface IPlayer{
}
public class Player implements IPlayer{}
public class AIPlayer implements IPlayer{}
*** Methods**
takeTurn()
doDiscard()
doDraw() //pick from discard pile or deck
doKnock()
我了解上述代码的用法,但我无法决定应用或实现哪一个。我是 OOP 或设计模式的新手,您的建议和代码示例将是一个非常大的帮助。
最佳答案
我将从方法 3 开始,它在两个类之间提供的内聚力最少。如果您发现有很多通用功能,那么请使用方法 2,或者将该功能提取到您的 IPlayer
实现组成的其他类中。我通常倾向于支持组合而不是继承,因为它使您的代码在重构时更容易修改,并且在运行时更加动态。
关于java - 纸牌游戏玩家类 OOP 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225328/
我已经创建了我的牌组,可以处理每张牌和一套花色,直到没有牌为止。对于我的项目,我需要将它分成 3 个类,其中包括一个驱动程序类。我首先创建了一个包含所有内容的类,所以我知道如何让它全部工作。 publ
嘿伙计们,我正在学习我的第一个 Java 类(class),但在尝试编译该程序时遇到了错误代码。我附加了这两门类(class),希望他能帮助我找到错误。这是我收到的错误: Error: constru
这个问题在这里已经有了答案: How to randomly shuffle a deck of cards among players? (3 个答案) 关闭 4 年前。 我一直在尝试学习 Pyt
我是一名优秀的程序员,十分优秀!