gpt4 book ai didi

java - 在二维六边形网格上寻找邻居

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:13 25 4
gpt4 key购买 nike

所以我有一个有效的 getNeighbors 函数:

(它的静态取决于我的 map 有多大,还没有让它动态化..虽然这不应该是一个问题)

19x12

public int[] getNeighbors(int i) {

  int[] neighbors = new int[6];
if (((i % xlength) % 2) == 0) {
neighbors[0] = (i - 19);
neighbors[1] = (i - 18);
neighbors[2] = (i + 1);
neighbors[3] = (i + 19);
neighbors[4] = (i - 1);
neighbors[5] = (i - 20);
} else {
neighbors[0] = (i - 19);
neighbors[1] = (i + 1);
neighbors[2] = (i + 20);
neighbors[3] = (i + 19);
neighbors[4] = (i + 18);
neighbors[5] = (i - 1);
}

}

它工作得很好,但当我处于边缘时会挂起。

我不知道我是否应该根据具体情况来做,或者我是否想得太多了。现在我有一个自动脚本,用于将点从十六进制随机移动到十六进制,有时它将它视为圆环网格并跳到另一边(不是我想要的,但我期望它与当前代码一起使用)或只是挂起在我正在寻找的无限循环中。

最佳答案

在这种情况下,如果您的算法出现问题,将棋盘的边缘一直扩大一格可能会简单得多。您当然会限制它们用于位置,但您的邻居逻辑不需要在边缘有所不同。

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

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