2011-08-30 66 views
4

我是模拟新手,我只是想找出最好的方法来解决我遇到的某个问题。模拟问题Java

我有一个“世界”,其中有不同的地点(不同的城市)。在每个城市里,都有一定数量的操作人员。每个工作人员都有一个名称,声誉级别,一定数量的金钱以及它所控制的企业数量。这些业务中的每一个都以不同的方式进行控制,例如,银行可能需要大量的安全措施,这将需要花费在该部门中,而酒店将需要更多的钱用于业务的翻修/结构升级取得成功。每个企业都会每周为船员带来一定数量的金钱。如果业务易受攻击,机组人员通常会试图在同一城市内接管另一名机组人员的业务。如果一个企业缺乏安全等重要部门,这会使企业变得脆弱(这在各个企业之间都有所不同)。

我需要以某种方式实现这种模式的船员获得企业,维护/防御他们,而机会出现时攻击其他船员,但我完全失去了从何处开始。如果情况出现,我可以随意创建一大堆,但我知道必须有更好的方法。任何帮助表示赞赏,谢谢。

回答

5

开始思考你的高层实体,更重要的是,这些实体之间的关系。

以下是一些名词(存在于你的模拟实体)的:

  • 世界
  • 城市
  • 克鲁斯
  • 企业

这里有一些动词(你的名词之间存在的关系):

  • 进攻/防守商家
  • Aquiring业务
  • 业务要求检测/检查(安全,资金等)
  • Vunerability检查
  • 赚钱
  • 跟踪钱
  • 城市边界检查(船员在同一城市攻击船员)
  • 机会计算(针对船员进行攻击)

我敢肯定,可能还有更多。关键在于您需要评估哪些关键任务需要存在才能使您的模拟有用。

根据一个有点合理安全的假设,你不是一个数学家,对脆弱性和机会的计算必须有些武断。确定你认为在船员经历的决策过程中更重要的部分。

这个名词真的非常简单。你只需要仔细考虑你的数据结构以容纳不同的实体。考虑你打算如何使用这些对象,并利用数据结构来最大限度地提高性能,以及如果在开发过程后期发生变化,则可灵活变通。

关系类通常存在困难,因为可能很难准确描述一个过程正在做什么。尝试遵循SRP(单一责任原则 - 一个对象应该有一个单一的责任,并且这个责任应该完全被这个阶级所包围)。也就是说,不要成为一个狂热的人。有时候,当两个密切相关的过程应该集中在一起时,它会变得更多。

GL