TC官方合作论坛

 找回密码
 立即注册
查看: 13047|回复: 201
打印 上一主题 下一主题

[源码分享] 【24行核心源码实现拓扑图寻路】拓扑图 寻路最短路径!

  [复制链接]
跳转到指定楼层
#
发表于 2013-11-25 17:56:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 阿三 于 2013-11-25 18:11 编辑

比如我们需要到达某一个点,需要从最近的路径过去.看下图:

如果从瓦当出发,去古洞。那么,可以是瓦当—洛阳—南郡—古洞。。。瓦当—洛阳—冰峪—南郡—凤翔—古洞。。
怎么走才到,经过几个城市。路途最短怎么走。。。
这就是拓扑图最短路径算法了。
那遇到这样的图,我们怎么在代码上把图画出来呢。利用二维数组。比如,这个图。代码如下:

  1. 地图数组=数组[100][7]//定义一个二维数组,装每一座城市
  2.     地图数组[1][0]="瓦当",地图数组[1][1]=1,地图数组[1][2]=2,地图数组[1][3]=4
  3.     地图数组[2][0]="洛阳",地图数组[2][1]=2,地图数组[2][2]=1,地图数组[2][3]=3,地图数组[2][4]=4,地图数组[2][5]=5
  4.     地图数组[3][0]="冰峪",地图数组[3][1]=3,地图数组[3][2]=2,地图数组[3][3]=5,地图数组[3][4]=7
  5.     地图数组[4][0]="落水",地图数组[4][1]=4,地图数组[4][2]=1,地图数组[4][3]=2,地图数组[4][4]=5,地图数组[4][5]=6
  6.     地图数组[5][0]="南郡",地图数组[5][1]=5,地图数组[5][2]=2,地图数组[5][3]=3,地图数组[5][4]=4,地图数组[5][5]=6,地图数组[5][6]=7
  7.     地图数组[6][0]="凤翔",地图数组[6][1]=6,地图数组[6][2]=4,地图数组[6][3]=5,地图数组[6][4]=7,地图数组[6][5]=8
  8.     地图数组[7][0]="徐州",地图数组[7][1]=7,地图数组[7][2]=3,地图数组[7][3]=5,地图数组[7][4]=6
  9.     地图数组[8][0]="古洞",地图数组[8][1]=8,地图数组[8][2]=6
复制代码
地图数组[1] [0] 装地图名称 地图数组[1] [1]装地图代号 后面的装 地图所能到的其他地图代号
这儿,阿三是从1开始的,为了方便编号 ,不过TC来说,从0开始,大家以后做的时候 ,可以从0开始。
这样,我们就把这张图做出来了。
这样的话,值需要这样调用,如需要 "瓦当" 这个元素:
地图数组[1] [0],这样就行了!甚至可以这样:地图数组[地图数组[2][2] ][0].
这是什么意思呢?要一层一层的解析。括号里面的首先看喽。 地图数组[2][2]这个是地图2的第三个元素。结果返回的是1.那么就是:地图数组[1 ][0]了,这儿的1是地图数组[2 ][2] 的返回值。所有,地图数组[1 ][0] 和地图数组[地图数组[2][2] ][0]的值时一样的都是"瓦当"。


做了个控件,让其实现选择城市,然后在下面体现两个城市的寻路路径。
核心代码很短。

游客,如果您要查看本帖隐藏内容请回复

一共 24行搞定寻路核心代码。而且寻路利用堆栈算法。直接求得结果。效率应该算是很高的了。
脚本中详细介绍 栈 的实现 详细注释  更好的让大家了解堆栈的概念 。
tc项目文件:
游客,如果您要查看本帖隐藏内容请回复





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

201#
发表于 2018-9-30 12:35:02 | 只看该作者
1111111111111111
回复 支持 反对

使用道具 举报

200#
发表于 2018-8-8 06:40:52 | 只看该作者
啊啊啊
回复

使用道具 举报

199#
发表于 2018-6-4 23:35:53 | 只看该作者

顶一个。我现在也在做一个 无自动寻路的游戏脚本
回复 支持 反对

使用道具 举报

198#
发表于 2018-4-28 01:04:58 | 只看该作者
取不重复随机数(1, 2, 3)
回复 支持 反对

使用道具 举报

197#
发表于 2018-3-16 23:21:18 来自手机 | 只看该作者
66666
回复

使用道具 举报

196#
发表于 2018-3-16 17:20:32 | 只看该作者
11123333331241
回复 支持 反对

使用道具 举报

195#
发表于 2018-3-12 17:27:23 | 只看该作者
谢谢分享了
回复 支持 反对

使用道具 举报

194#
发表于 2017-12-6 11:56:33 | 只看该作者
回复

使用道具 举报

193#
发表于 2017-11-29 15:16:40 | 只看该作者
回复

使用道具 举报

192#
发表于 2017-10-10 23:58:05 | 只看该作者
感谢分享大哥
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-17 23:17 , Processed in 0.131902 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表