AStar 算法(erlang版本)

本文介绍了一种用Erlang语言实现的A*搜索算法,代码中包含关键函数get_neighbour_coord,该函数依赖于map:is_movable_coord进行可行走坐标的判断,需自行实现并替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A* 算法的erlang实现,下面的代码在get_neighbour_coord函数里面使用到了判断坐标是否可走的map:is_movable_coord 函数,需要自己去实现并替换。

以下是源码:

%%=========================astar.erl=====================================

-module(astar).

%% ====================================================================
%% API functions
%% ====================================================================
-export([find_path_by_astar/5]).

-record(pathcoord, {g=0,f=0,now_pos={},parent_coord={}}).

%%=========================================================
%%        A*寻路算法 written by pjc
%%=========================================================
%% 假设下面是一张小地图
%%  y ----------------------------------------------------------------------------------
%%  * |(0,9)  | (1,9)  | (2,9) | (3,9) | (4,9) | (5,9)  | (6,9) | (7,9) | (8,9) | (9,9) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,8)  | (1,8)  | (2,8) | (3,8) | (4,8) | (5,8)  | (6,8) | (7,8) | (8,8) | (9,8) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,7)  | (1,7)  | (2,7) | (3,7) | (4,7) | (5,7)  | (6,7) | (7,7) | (8,7) | (9,7) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,6)  | (1,6)  | (2,6) | (3,6) | (4,6) | (5,6)  | (6,6) | (7,6) | (8,6) | (9,6) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,5)  | (1,5)  | (2,5) | (3,5) | (4,5) | (5,5)  | (6,5) | (7,5) | (8,5) | (9,5) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,4)  | (1,4)  | (2,4) | (3,4) | (4,4) | (5,4)  | (6,4) | (7,4) | (8,4) | (9,4) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,3)  | (1,3)  | (2,3) | (3,3) | (4,3) | (5,3)  | (6,3) | (7,3) | (8,3) | (9,3) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,2)  | (1,2)  | (2,2) | (3,2) | (4,2) | (5,2)  | (6,2) | (7,2) | (8,2) | (9,2) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-------|
%%  * |(0,1)  | (1,1)  | (2,1) | (3,1) | (4,1) | (5,1)  | (6,1) | (7,1) | (8,1) | (9,1) |
%%  * |-------|--------|-------|-------|-------|--------|-------|-------|-------|-----
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值