gpt4 book ai didi

python - 在六边形网格上寻找相邻的邻居

转载 作者:太空狗 更新时间:2023-10-29 18:30:56 24 4
gpt4 key购买 nike

编辑:将示例 map 包装在代码块中,以便格式正确。

好的,我正在尝试在六边形网格上编写一个极其简单的 A* 算法。我理解,并且可以做 A* 部分。事实上,我的 A* 适用于方形网格。我无法解决的问题是找到六边形的邻居。这是 heagonal 网格的布局

0101     0301
0201 0401
0102 0302
0202 0402

等等等等

所以,我需要帮助的是编写一个 Hexagon 类,在给定它的十六进制坐标的情况下,它可以生成一个邻居列表。它需要能够生成会“脱离”网格的邻居(例如 20x20 网格中的 0000 或 2101),因为这就是我的 A* 跟踪并排放置的多个 map 的方式。所以可以与此代码片段一起使用的东西:

行星 = 十六进制('0214')打印(行星。邻居())['十六进制 0213', '十六进制 0215', '十六进制 0115', '十六进制 0315', '十六进制 0116', '十六进制 0316']

最佳答案

这取决于您如何定义六边形图 block 的坐标。

让我们看看。

  ,   ,   ,   ,
/ \ / \ / \ / \
| A1| A2| A3| A4|
\ / \ / \ / \ /
| B1| B2| B3|
/ \ / \ / \ / \
| C1| C2| C3| C4|
\ / \ / \ / \ /
' ' ' '

在这种情况下,偶数行和奇数行的邻居定义不同。

对于 Y 为偶数的单元格 (X,Y),其邻居为:(X,Y-1),(X+1,Y-1),(X-1,Y),(X+1,Y),(X,Y+1),(X+1,Y+1 )

对于 Y 为奇数的单元格 (X,Y),其邻居为:(X-1,Y-1),(X,Y-1),(X-1,Y),(X+1,Y),(X-1,Y+1),(X,Y+1 )

关于python - 在六边形网格上寻找相邻的邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com