 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
|
|
 |
 |
 |
 |
 |
 |
|
IBoardModel
|
|
|
{Rules of the Game}
|
|
• Board configurations
|
|
• Legal moves
|
|
|
|
|
|
|
|
|
|
|
 |
 |
 |
 |
 |
 |
|
GameModel
|
|
|
|
{Game Management}
|
|
|
• Game initialization
|
|
• Win/lose/draw notification
|
|
|
|
|
|
|
|
 |
|
|
 |
 |
|
TurnControl
|
|
{Player Management}
|
|
|
|
|
 |
|
|
|
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
|
INextMoveStrategy
|
|
|
{Next Move Computation}
|
|
• Random
|
|
|
• Min-max/Alpha-beta
|
|
|
• Limited depth
|
|
|
• Custom
|
|
|
|
|
 |
 |
|
APlayer
|
|
|
{Turn Taker}
|
|
|
|
|
|
|