You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

六边形棋盘结构动物分数计算算法优化咨询

六边形地图分数计算的算法优化咨询
  • 数据结构说明:

    • 使用HashMap<Point, Tile>表示六边形结构的游戏地图
    • Point类:仅包含int类型的x和y坐标属性,构造方法为Point(int x, int y)
    • Tile类:包含Habitat(栖息地)属性与Animal animalToken(动物标记)属性,构造方法为Tile(Habitat habitat, Animal animalToken)
  • 需求目标:根据地图上tiles的动物标记计算分数,分数规则遵循Cascadia游戏的官方规则。

  • 当前问题:之前的实现逻辑混乱,仅计算单一种类动物的分数就需要编写100多行代码。

  • 已实现功能:已完成获取指定点相邻可用tiles的功能,代码如下:

private static ArrayList<Tile> adjacentAvailableTile(Point point)
{
    return adjacentAvailableTile(adjacentAvailablePoints(point));
}


private static ArrayList<Tile> adjacentAvailableTile(ArrayList<Point> points)
{
    ArrayList<Tile> availableTiles = new ArrayList<>();
    for (Point point : points)
    {
        Tile tile = board.get(point);
        availableTiles.add(tile);
    }
    return availableTiles;
}


private static ArrayList<Point> adjacentAvailablePoints(Point originPoint)
{
    Point[] sixAdjacentPoint = new Point[6];
    int i = 0;
    for (Position pos : Position.values())      //遍历Position枚举
    {
        //sixAdjacentPoint现在包含了给定点的所有相邻点
        sixAdjacentPoint[i++] = getPoint(originPoint, pos);
    }

    ArrayList<Point> availablePoint = new ArrayList<>();
    for (Point point : sixAdjacentPoint)
    {
        if (board.containsKey(point))
            availablePoint.add(point);
    }
    return availablePoint;
}

由于对图结构相关算法了解较少,想咨询有哪些合适的算法/搜索算法可以简化这部分分数计算的开发?

内容的提问来源于stack exchange,提问作者st3ems

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:12:14