我有这个问题,关于我将考虑使用什么算法或方法来解决从 A 点到 B 点的路径的特定问题,其中两个点不在同一平面上(位于复合的不同楼层/楼层 - 可能不是在同一栋楼上)。
我正在考虑A*和Dijkstra 的算法。然而,仅基于此算法(如果我错了,请纠正我)仅关注单个地图图。具有不同的地图图(由于许多楼层和许多建筑物)对于上述两种算法可能会有不同的故事。
根据困难,我为我的所有地图设计了一种格式,以遵循数据的一致性。在每张地图中,都有建筑物名称、楼层号和每层楼可能具有的部分以及平面图(转换为二维单字符数组)的数据。例如(两个地图都在不同的文件上):
//MainFloor1 //MainFloor2
Main Main
1st 2nd
1:Wall 1:Wall
2:Door 2:Door
3:Elevator 3:Elevator
# 4:Room1
1111441111 5:Room2
1 1 #
1 1 1111441111
1 1 1552 2441
1111221111 1551 1441
# 1551 1441
//End-MainFloor1 1111221111
#
//End-MainFloor2
从给定的地图中,如果我想考虑从 A 点(MainFloor1 的第一个“2”下方)到 B 点(MainFloor2 左上角的第一个“4”)将返回结果。
// X is the path from Point A to Point B
1111X41111 1111X41111
1 X 1 1552XXXB41
1 X 1 1551 1441
1 X 1 1551 1441
1111A21111 1111221111
我将考虑或采取什么方法从给定的地图输入中产生这样的结果?
谢谢