【问题标题】:OOPS Chess game: Design logic once a player moves a pieceOOPS 国际象棋游戏:一旦玩家移动棋子,设计逻辑
【发布时间】:2018-03-14 17:28:02
【问题描述】:

如果正在考虑使用 OOPS 原则设计国际象棋游戏。我无法考虑移动棋子后的用例应该如何处理。 正如我们现在,当玩家将他的棋子从一个位置移动到另一个位置时。很少有人认为会发生这种情况。就像棋子可能到达最后一排一样,新棋子将在船上而不是那个棋子,或者可以检查对手,或者这个检查也可以检查队友。那么这些情况应该如何处理?这些逻辑应该放在哪个类上?链式责任设计模式更适合这里吗?

【问题讨论】:

  • 您可能需要多种设计模式。我会想到指挥部,也许还有责任链。整个问题的层次太高,无法仅用一种设计模式来回答。该方法可能始终取决于您的环境和代码库。我可以从您的问题中想象这是一个独立的应用程序,但它也有可能是一个简单的网络应用程序。
  • 一个好的状态机可能会帮助您保持井井有条。

标签: oop design-patterns chess


【解决方案1】:

您将需要设计模式的组合。

对于移动,您可以使用命令模式,因为这将帮助您遵循追逐的基本动作。

然后您可以使用装饰图案将功能赋予不同的玩家和盒子。

总的来说,您可以有一个 MVC 模式,其中视图将是播放器板本身,控制器可以具有用户给出的命令,还可以包含上一对中讨论的设计模式的段落。

然后您就可以拥有定义特征的所有模型。

【讨论】:

    猜你喜欢
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多