|
楼主 |
发表于 2019-4-10 16:52:52
|
显示全部楼层
本帖最后由 newbie@tj 于 2019-4-10 16:57 编辑
给一个初级版本,供大家参考,- function searchPre()
- road.rooms={}
- --print(road.id)
- local p_room = map.rooms[road.id].name
- local p_dest = getLookCity(road.id)
- local l_distance = 6
- if job.name and (job.name=="clb" or job.name=='tdh' or job.name=='tmonk') and flag.times==1 then
- l_distance = 2
- end
- if job.name and job.name=='xueshan' and flag.times==1 then
- l_distance = 3
- end
- if p_dest==nil then
- p_dest=map.rooms[road.id].outdoor
- end
- --local rooms = getAroundRooms(p_room,p_dest,l_distance,'all')
-
- ----------------------------------
- local rooms ={}
-
- if table.getn(getRooms(job.room, job.area))>1 and flag.times==1 then
- rooms=getRooms(job.room, job.area)
- require "tprint"
- -- tprint(rooms)
- print("第一次遍历,找到"..countTab(rooms).."个同名房间")
- else
- rooms = getAroundRooms(p_room,p_dest,l_distance,'all')
- end
- tprint(rooms)
- -----------------------------------
- --local roomsnum=countTab(rooms)
- local roomsnum=#rooms
- --构造邻接表,用于递归搜索
- --插入起始road.id
- starttime=os.clock() --测试计算时间
- newrooms = {}
-
- if roomsnum > 1 and flag.times==1 then
- newrooms=rooms
- else
- for id in pairs(rooms) do
- table.insert(newrooms,id)
- end
- end
- myrt={}
复制代码
我发这篇帖子的起因是没看到论坛有相关内容讨论,不是为灌水,也不是为了通宝,纯粹是出于兴趣研究公版机器,我也没什么兴趣挂机练级,弄几个号仅仅是为了测试而已 |
|