繁体   English   中英

游戏类图

[英]Game class diagram

我在为游戏拍摄类图时遇到问题。 游戏发生的世界可以用字段表示。 每个字段由坐标x和y标识。 该领域可能便于建立和解。 如果场上有定居点,那么唯一的定居点。 每个字段都作为位图链接到横向。 在某些领域,可能存在资源(例如煤,矿石)或非专有的其他工件。 每个玩家都是公国的统治者。 可能属于许多定居点的公国。 国籍和公民身份的公国指定定居卡车。 公民是公国的公民,属于公国的一个定居点。 但是,和解可能生活在不同的国家,其国籍与公民身份不一致。 居住在村庄的个别国家的特点是对拥有该村庄的公国的忠诚。 对于定居者征收人头税,每周必须转移到公国。 税收为公国的财政提供食物。 过高的税收会降低定居者的士气。 收集资金对维护建筑物和军队至关重要。 在村庄里,您可以放置​​不同类型的建筑物。 其中一些可以仅构建每个定居点的单个副本(例如,沟渠),其他的大量(例如,植物毛皮)。 对于建筑物内的沉积物,部分定居者必须作为指定数小时的建造者工作,并且必须为其建造提供适当的产品和原材料。 ¬每天的沉淀直径可能适用于其他职业(如armorer,侦察员)。 到定居者可以完成他们的工作,通常需要适当的建筑物(如锻造,锯木厂)。 大多数工人提供文物 - 制造产品(例如,铁匠,农民)或生产自然资源(例如,矿工,伐木工人)。 某些工件可能需要制造产品。 然后,按照必要的小时数工作的工人将在生产中工作。 由于定居者而创建的工件是一种产品。 对于产品的最后退区域是Armor(例如,剑,锁子甲)和食物(例如面包,肉)。 非产品的最重要的工件类型是自然资源。 对于颗粒可以存储在工件中更多,你必须建立一个仓库。

我甚至都没有询问所有的任务 - 我知道这是大而且耗费时间。 我只是想听听一些建议,把什么作为抽象类,什么作为接口放在这里。 什么类应该有建立建筑的操作? 提前感谢您的任何想法,事件单句!

你实际上在分析模型上有一个很好的开端。 分析模型应该代表域,在这种情况下,域是您游戏的世界。 如果将名词转换为类和已经具有关联结束属性的动词,则分析模型的第一个版本将会失效。 (但是,确保这些类是单数 ,而不是复数。)进行此转换的一种方法是在两个方向上制作自然语句的子弹列表,例如:

  • [一个或多个] Fields 代表的游戏
  • Field 代表 [one] Game
  • [one]坐标识别的字段
  • 坐标识别 [一]场
  • 结算包含在 [零或一个]字段中
  • 字段包含 [零或一个]结算

(我认为你接受超类,抽象类和接口可能为时过早,因为你在这里询问基础知识。在你有更多经验之后,请再问一个更具体的问题。)

然后,您可以将关联结束属性名称转换为分词短语,以在目标OO语言中更加正常,同时仍保留语义。 这些分词短语告诉读者您的代码关联的目的,以及消除两个类之间的多个关联以用于不同目的。 以下是我所说的分词短语(即用作形容词的动词短语)的一些例子,用作角色名称:

  • |游戏| -representedGame ----- representField- | Field |
  • |字段| -identifiedField ----- identifyCoordinate- | Coordinate |
  • |结算| -containedContlement ---- containingField- | Field |

此时,列出动词列表,表示您希望类完成的事情。 这些是你的行动。 有时很明显哪个班级应该负责操作; 其他时候你必须拟人化。

现在,使用图形和I / O库的那些操作的代码方法,你自己一个游戏!

有关更多信息,我强烈建议您阅读Leon Starr的“ 如何构建关联UML模型”文章或HS Lahman的书“ 基于模型的开发:应用程序”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM