TC官方合作论坛

 找回密码
 立即注册
查看: 1305|回复: 1

有没有高手来帮我看看寻路类代码问题

[复制链接]
发表于 2020-4-3 21:37:56 | 显示全部楼层 |阅读模式

马上加入TC

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

x
本帖最后由 qq641235265 于 2020-4-3 21:44 编辑

如题,不知道是代码问题还是逻辑问题。这份代码可以扩展出 B*寻路,但是目前不知道为什么一直不返回正确的结果。
展示代码在1楼,项目打包了,有兴趣的朋友可以下载来看看顺便帮我看看代码有什么问题。


数组测试.rar

1.89 MB, 下载次数: 21, 下载积分: 金币 -1 个

回复

使用道具 举报

 楼主| 发表于 2020-4-3 21:38:31 | 显示全部楼层
  1. 功能 寻路计算(x,y,x1,y1,route,E_route)
  2.     变量 index=0,position="",E_index=0
  3.     循环(真)                                        //3.跳出后又回到这里继续循环了
  4.         如果(x1>x)
  5.             E_index=mulArrFinVal(E_route,数组(x+1,y))
  6.             index=mulArrFinVal(route,数组(x+1,y))
  7.             position=表格获取内容("模拟地图",y,x+1)
  8.             如果(index==-1&&E_index==-1&&position!="")
  9.                 x=x+1
  10.                 数组追加元素(route,数组(x,y))
  11.             否则如果(y>0)
  12.                 E_index=mulArrFinVal(E_route,数组(x,y-1))
  13.                 index=mulArrFinVal(route,数组(x,y-1))
  14.                 position=表格获取内容("模拟地图",y-1,x)
  15.                 如果(index==-1&&E_index==-1&&position!="")
  16.                     y=y-1
  17.                     数组追加元素(route,数组(x,y))
  18.                 结束
  19.             否则
  20.                 E_index=mulArrFinVal(E_route,数组(x,y+1))
  21.                 index=mulArrFinVal(route,数组(x,y+1))
  22.                 position=表格获取内容("模拟地图",y+1,x)
  23.                 如果(index==-1&&E_index==-1&&position!="")
  24.                     y=y+1
  25.                     数组追加元素(route,数组(x,y))
  26.                 结束
  27.             结束
  28.         结束
  29.         如果(x1<x)
  30.             E_index=mulArrFinVal(E_route,数组(x-1,y))
  31.             index=mulArrFinVal(route,数组(x-1,y))
  32.             position=表格获取内容("模拟地图",y,x-1)
  33.             如果(index==-1&&E_index==-1&&position!="")
  34.                 x=x-1
  35.                 数组追加元素(route,数组(x,y))
  36.             否则如果(y>0)
  37.                 E_index=mulArrFinVal(E_route,数组(x,y-1))
  38.                 index=mulArrFinVal(route,数组(x,y-1))
  39.                 position=表格获取内容("模拟地图",y-1,x)
  40.                 如果(index==-1&&E_index==-1&&position!="")
  41.                     y=y-1
  42.                     数组追加元素(route,数组(x,y))
  43.                 结束
  44.             否则
  45.                 E_index=mulArrFinVal(E_route,数组(x,y+1))
  46.                 index=mulArrFinVal(route,数组(x,y+1))
  47.                 position=表格获取内容("模拟地图",y+1,x)
  48.                 如果(index==-1&&E_index==-1&&position!="")
  49.                     y=y+1
  50.                     数组追加元素(route,数组(x,y))
  51.                 结束
  52.             结束
  53.         结束
  54.         如果(y1>y)
  55.             E_index=mulArrFinVal(E_route,数组(x,y+1))
  56.             index=mulArrFinVal(route,数组(x,y+1))
  57.             position=表格获取内容("模拟地图",y+1,x)
  58.             如果(index==-1&&E_index==-1&&position!="")
  59.                 y=y+1
  60.                 数组追加元素(route,数组(x,y))
  61.             结束
  62.         结束
  63.         如果(y1<y)
  64.             E_index=mulArrFinVal(E_route,数组(x,y-1))
  65.             index=mulArrFinVal(route,数组(x,y-1))
  66.             position=表格获取内容("模拟地图",y-1,x)
  67.             如果(index==-1&&E_index==-1&&position!="")
  68.                 y=y-1
  69.                 数组追加元素(route,数组(x,y))
  70.             结束
  71.         结束
  72.         如果(x==x1&&y==y1)
  73.             break                        //1.已满足条件并执行
  74.         否则
  75.             地点判断(x,y,x1,y1,route,E_route)
  76.         结束
  77.         等待(100)
  78.     结束
  79.     traceprint("跳出:"&route)                //这里打印出的结果是正确结果,但问题是不返回
  80.     return route
  81. 结束
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-30 12:49 , Processed in 0.034491 second(s), 25 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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