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

A*搜索方向扩展与移动成本修改实现问询

扩展A*寻路方向与调整移动成本的实现方案

嘿,我来帮你搞定A*算法里的八方向寻路和成本设置问题,分两步就能解决:

一、扩展寻路方向到八个方向

你原来的方向定义只覆盖了四方向,要扩展到八方向,只需要在xs和ys里补充四个斜向的坐标偏移就行。每个斜向对应的坐标变化逻辑很直观:

  • 左上:x减1,y减1 → 偏移量(-1, -1)
  • 左下:x减1,y加1 → 偏移量(-1, 1)
  • 右上:x加1,y减1 → 偏移量(1, -1)
  • 右下:x加1,y加1 → 偏移量(1, 1)

修改后的方向定义代码如下:

# 定义移动方向:上/左/右/下/左上/左下/右上/右下
xs = (0, -1, 1, 0, -1, -1, 1, 1)
ys = (-1, 0, 0, 1, -1, 1, -1, 1)

二、调整斜向移动的成本为2.0

你当前的get_cost函数只处理了四方向的情况,缺少斜向的判断分支。我们只需要补充一个else分支——当x和y坐标都不相等时,就说明是斜向移动,返回2.0即可。

修改后的成本计算函数如下:

def get_cost(self, x1, y1, x2, y2):
    if x1 == x2 or y1 == y2:
        # 上下左右四方向移动,成本1.0
        return 1.0
    else:
        # 斜向移动(左上/左下/右上/右下),成本2.0
        return 2.0

这样修改后,你的A*算法就能完美支持八方向寻路,并且正确区分四方向和斜向的移动成本啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:09:41