2010-06-07 68 views
9

我正在尝试制作一个井字游戏的域模型。然后,我会尝试继续完成统一过程的各个步骤,并稍后以某种语言(C#或Java)实现它。制作井字游戏的域模型

我想有一些反馈,如果我要在正确的道路上: alt text http://dl.dropbox.com/u/6187267/shooterpics/tictactoedm.jpg

我定义有两个演员,Player OPlayer X游戏。

  1. 我不确定如何定义TileTile State。也许我应该只定义一个Tile并有3个可能的状态专门从它?
  2. 我不知道什么是最好的:让Player OPlayer XTic Tac Toe关联或让它们继承PlayerTic Tac Toe关联。按照图片上显示的设计,理论上我们可以有一个Tic Tac Toe概念与2球员O,这将是不正确的。你对此有何看法?

另外,我错过了图中的东西?虽然我看不到任何其他演员为井字游戏,我应该有其他吗?

谢谢

+0

我不认为瓷砖应该有坐标(或应该有一个董事会..什么是它的使用?)..它只有9个瓷砖,他们永远不会改变,我只会从1-9号码,这样它也更容易检查赢的状态。 也不知道如果我会使用球员,你可以想象一个交替的符号(O或X)放在瓦片中,当你找到胜利的条件时,你只需将比分+1加到当前的辛博尔counte – 2010-06-07 22:51:55

+0

董事会是一个瓷砖的容器。一个Tic Tac Toe游戏有一个Board。这并不意味着我将在类图中拥有相同的类。 – 2010-06-07 22:59:55

+0

对于不相关的和坏的东西,你用这个图表的软件是什么? – 2015-09-02 19:24:25

回答

1

要将图:

  1. 由构成应该是组成关系,而不是协会 (瓷砖不能独立存在,董事会的状态由其瓷砖的状态定义。)
  2. 球员O和球员X是Player类的实例,而不是子类 (玩家0和球员X具有相同的结构,播放机,它们有相同的行为,所不同的是身份和状态 - 名称的图中)

当你谈论领域模型时(在UP环境下),你应该忘记创建一个软件系统,并且只包括对于tic tac toe游戏领域来说很重要的东西。想想如何描述任何游戏 - 它有它的规则(准备,转向,游戏结束条件......),玩家(具有更多游戏的身份,点,拥有/控制的组件,角色......)和物理组件董事会,代币,人物,卡片......)。如果你接受这些元素作为游戏的领域模型的一部分,并因此为你的井字游戏元模型,你应该使用元素,这是元素的实例。

7

另类分解将取代董事会和瓷砖与游戏和移动。一个游戏将包含一系列合法移动,一个移动将包含平方坐标(或其他标识符)以及它是玩家O还是X.该计划包含更多信息,允许游戏重播和备份。