【发布时间】:2018-10-15 06:06:40
【问题描述】:
我有一个 2d 游戏板,随着瓷砖添加到板上而扩展。瓷砖只能在上、下、左、右位置与现有瓷砖相邻。
所以我认为菱形螺旋矩阵是存储板的最有效方式,但我找不到将 x,y 坐标转换为一维数组索引或反向操作的方法。
喜欢这个布局
X -3 -2 -1 0 1 2 3
Y 3 13
2 24 5 14
1 23 12 1 6 15
0 22 11 4 0 2 7 16
-1 21 10 3 8 17
-2 20 9 18
-3 19
图块 1 将始终位于位置 0,图块 2 将位于 1、2、3 或 4,图块 3 将位于 1 到 12 等位置。
所以我需要一个算法,从 X,Y 到索引,从索引返回到原始 X 和 Y。
任何人都知道如何做到这一点,或者推荐另一种适合我需要的空间填充算法。我可能会使用 Java,但更喜欢语言中立的东西。
谢谢
【问题讨论】:
-
我认为这个链接可能有解决方案; mangband.org/developer/browser/trunk/src/server/…