1

我正在尝试为国际象棋游戏建模。我的 UML 新手想法是这样的:
GameEngine 只有一个棋盘和两个玩家(从 Player 继承),当 GameEngine 被销毁时,这些(组合)也是如此。棋盘最多可以包含 32 个棋子,每个玩家可以控制/引用 16 个棋子(聚合)。玩家需要调用或访问棋盘的某些方法(定向关联)。这是正确的还是至少接近?

在此处输入图像描述

4

1 回答 1

0

Player您对Humanand进行了抽象CPU。我想你所有的箭都必须用普通的Player。例如:

class Chessboard {
  Player p1;
  Player p2;
}

这是更方便的方式,您可以在运行时更改您的玩家和不同的游戏模式:Human vs Human、Human vs CPU,甚至 CPU vs CPU

同样的变化也适用于 GameEngine。

顺便说一句,我认为玩家聚合控制的棋子不是一个好主意。对 nut 的所有控制Chessman都由 负责Chessboard,玩家只需在轮到他行动时向他发送消息。

该更改允许您在多桌游戏中为每位玩家拥有多个棋盘。

于 2013-11-01T12:19:29.453 回答