首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关系意识

关系意识
EN

Stack Overflow用户
提问于 2017-07-18 05:17:02
回答 1查看 22关注 0票数 0

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

我遇到的主要问题是,我不知道如何让矩阵中的每个成员都知道彼此以及他们自己与整个事情的关系。为了深入了解它的工作原理,该设计是双层的。

首先有一个包含所有成员的通用集合。每个成员都包含在自己的泛型项中,泛型项既包含原始数据,也包含项在集合中的位置。

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

我本质上是试图从数据库中创建几乎完全相同的东西,以便它只存在于一个地方,但可以从它的其他成员访问,就像数据库类比中的记录。

EN

回答 1

Stack Overflow用户

发布于 2017-07-18 06:16:44

如果我正确理解了您的问题,那么每个瓦片都需要知道并能够引用矩阵中相邻的瓦片。首先想到的解决方案是使用指针,但由于这是c#,所以使用安全的方法可能更好。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45153805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档