首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在内存中表示十六进制/十六进制网格?

如何在内存中表示十六进制/十六进制网格?
EN

Stack Overflow用户
提问于 2009-12-03 17:11:14
回答 6查看 49.5K关注 0票数 139

假设我正在构建一个具有十六进制网格的棋盘游戏,比如

请注意,每个顶点和边可能都有一个属性(上面的道路和沉降)。

我如何制作一个代表这个线路板的数据结构?访问每个瓦片的邻居、边和顶点的模式是什么?

EN

回答 6

Stack Overflow用户

发布于 2009-12-03 17:19:55

这样的网格可以用二维数组表示:

如果

代码语言:javascript
复制
   2
7     3
   1   
6     4
   5

是十六进制网格中的第一个和它的邻居,那么你可以把它放到一个二维数组中,如下所示:

代码语言:javascript
复制
2 3
7 1 4
  6 5

显然,在这个网格中,邻居不仅是水平或垂直相邻的,而且还使用一条对角线。

不过,如果您愿意的话,您也可以使用图表。

票数 18
EN

Stack Overflow用户

发布于 2009-12-04 03:46:49

This article介绍了如何设置异构/六边形网格游戏。我建议你看看Forcing Isometric and Hexagonal Maps onto a Rectangular Grid部分和移动部分。尽管它与你正在寻找的东西不同,但它可能会帮助你制定出如何做你想做的事情。

票数 12
EN

Stack Overflow用户

发布于 2012-05-25 01:43:49

我和巫师打过很多交道。在这种情况下,您可以跟踪十六进制边界的6个点中的每个点。这使您可以很容易地绘制它。

您将拥有表示十六进制的单个对象数组。这些十六进制对象中的每一个都有6个“指针”(或指向另一个数组的索引),指向另一个“侧”数组。“顶点”也是如此。当然,顶点将有3个指针指向相邻的十六进制,边将有2个。

因此,十六进制可能是这样的: X,Y,点(6),顶点(6),边(6)

然后是十六进制数组、顶点数组和边数组。

然后很容易找到十六进制的顶点/边,或者其他任何东西。

当我说指针时,它可以很容易地是一个指向顶点或侧数组中的元素的整数。当然,数组可以是列表或其他任何形式。

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

https://stackoverflow.com/questions/1838656

复制
相关文章

相似问题

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