gpt4 book ai didi

java - 纸牌游戏玩家类 OOP 设计

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:37 25 4
gpt4 key购买 nike

我要为我的纸牌游戏 (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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com