1

私はチェスゲームをモデル化しようとしています。私の UML 初心者の考え方は次のとおりです
。GameEngine には 1 つのチェス盤と 2 人のプレーヤー (Player から継承) しかなく、GameEngine が破棄されると、これら (コンポジション) も破棄されます。チェス盤には最大 32 人のチェスの駒を含めることができ、各プレイヤーは 16 のチェスの駒を制御/参照できます (集約)。プレーヤーは、ボードのいくつかのメソッドを呼び出すかアクセスする必要があります (有向関連付け)。それは正しいですか、少なくとも近いですか?

ここに画像の説明を入力

4

1 に答える 1

0

とを抽象化Playerしました。すべての矢は共通のものを使用する必要があると思います。例えば:HumanCPUPlayer

class Chessboard {
  Player p1;
  Player p2;
}

これはより便利な方法であり、実行時にプレーヤーとさまざまなゲームモードを変更できます: 人間対人間、人間対 CPU、さらには CPU 対 CPU

同じ変更が GameEngine に適用されました。

ところで、コントロールされた駒をプレイヤーに集約するのは得策ではないと思います。Chessmanナットのすべての制御はの責任でChessboardあり、プレイヤーは自分の番で動きたいときに彼にメッセージを送るだけです。

この変更により、マルチテーブル ゲームでプレイヤーごとに複数のチェス盤を使用できるようになります。

于 2013-11-01T12:19:29.453 に答える