我正在尝试模拟国际象棋比赛。我的UML新手思维是这样的:
GameEngine只有一个棋盘和两个玩家(继承自Player),当GameEngine被摧毁时,这些(组合)也是如此。棋盘可以包含多达32个西洋棋棋子,每个玩家可以控制/引用16个西洋棋棋子(聚合)。玩家需要调用或访问董事会的某些方法(定向关联)。
这是正确的还是至少接近?
答案 0 :(得分:0)
您对Player
和Human
进行了抽象CPU
。我认为你所有的箭都必须使用普通箭Player
。例如:
class Chessboard {
Player p1;
Player p2;
}
这是更方便的方式,您可以在运行时更改您的玩家和不同的游戏模式:人与人,人与CPU,甚至CPU与CPU
相同的更改适用于GameEngine。
顺便说一句,我不认为玩总控制的西洋棋棋子是个好主意。所有对Chessman
坚持的控制权都是Chessboard
的责任,当玩家想要轮流行动时,玩家只需向他发送消息。
这种改变让你可以为每桌玩家提供多个棋盘用于多桌游戏。