关系意识

时间:2017-07-17 21:17:02

标签: c# matrix orm relation

我在尝试创建项目安排时遇到了问题。我正在创建一个游戏,该游戏发生在一个由名为Terrain的项目组成的棋盘上。板上的每个地形都是它自己独特的项目,具有特定于自身的属性和关系。地形生成的一个重要部分要求每个空间能够参考其相邻的瓷砖,我也预见到最后需要这样的实施,所以我现在想克服它。

我遇到的主要问题是我不知道如何让矩阵的每个成员相互了解彼此以及与整个事物有关。有关它如何工作的一些见解,设计是双层的。

首先是一个包含所有成员的一般集合。每个成员都包含在自己的通用项中,该项​​包含原始数据以及集合中项目的位置。

最重要的标准是我无法通过搜索大型集合来关联对象。我需要让每个项目包含对其所有相关邻居的引用,能够从该引用编辑其邻居,并避免更新这些项目时的所有递归。

我基本上试图从数据库创建几乎与一对一关系相同的东西,这样它只存在于一个地方,但可以从其他成员访问,就像数据库类比中的记录一样。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,每个图块都需要知道并能够引用矩阵中的相邻图块。想到的第一个解决方案是使用指针,但由于这是c#,因此坚持使用安全方法可能更好。

我对此问题的解决方案是在类型Terrain的构造函数中包含Terrain s数组的参数,以及包含该特定元素位置的整数参数数组。

如果这样做,那么Terrain可以从阵列中获取相对于其自身位置的相邻项目;当然,右边的项目是它的位置+ 1,左边的元素是它的位置 - 1。 上面的元素将是减去游戏板宽度的位置,下面的元素将是位置加上游戏板的宽度。