北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: lzkd

mush机器人框架设想

[复制链接]
发表于 2010-1-27 09:11:16 | 显示全部楼层
A*算法是什么东东?说说啊?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-27 09:58:53 | 显示全部楼层
找本人工智能的书看看就知道了,有点儿申奥
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-27 12:30:29 | 显示全部楼层
高手越来越多了,等俺猫在旁边好好的偷师。
是不是这个博客呢?
http://blog.csdn.net/suxiaojack/archive/2008/09/14/2928714.aspx
http://blog.csdn.net/suxiaojack/archive/2008/10/10/3042706.aspx

[ 本帖最后由 hba 于 2010-1-27 12:33 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-27 23:56:42 | 显示全部楼层
人工智能???太偏了,不懂!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-28 20:50:55 | 显示全部楼层
人工智能不偏啊,你做机器人,不就是人工智能吗?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-2-4 20:47:13 | 显示全部楼层
基于A*算法的房间寻路过程,地图格式如前面。
--city城市表,sid起始房间编号,did目的房间编号
local openlist={}
local closedlist={}

--主函数
function getroompath(city,sid,did)
local bestroom,temproom
if sid==did then return "" end
table.insert(openlist,createnode(sid,0,"",nil,nil))
while table.getn(openlist)~=0 do
  table.sort(openlist,function(a,b) return a.g   bestroom=openlist[1]
  if bestroom.key==0 then
   print("房间"..bestroom.prevnode.."有出口指向0,请查证")
   return ""
  end
  table.remove(openlist,1)
  if not checkclosedlist(bestroom.key) then closedlist[bestroom.key]=bestroom end
  if bestroom.key==did then return getpathfromlist(sid,did) end
  for k,v in pairs(city[bestroom.key].roomexists) do
   if not checkopenlist(v) then
    if not checkclosedlist(v) then table.insert(openlist,createnode(v,bestroom.g+1,k,bestroom.key,nil)) end
   end
  end
end
end

--创建节点
function createnode(key,g,path,prevnode,nextnode)
return {key=key,g=g,path=path,prevnode=prevnode,nextnode=nextnode}
end

--检查
function checkopenlist(key)
for k,v in pairs(openlist) do
  if key==v.key then return true end
end
return false
end

--检查
function checkclosedlist(key)
if closedlist[key]~=nil then
  return true
else
  return false
end
end

--获取路径
function getpathfromlist(sid,did)
local tmp
local path=""
tmp=closedlist[did]
path=tmp.path
while tmp.prevnode~=sid do
  tmp=closedlist[tmp.prevnode]
  path=tmp.path..";"..path
end
return path
end

[ 本帖最后由 sauron 于 2010-2-4 09:18 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-3-22 10:21:54 | 显示全部楼层
有了框架还是很方便
玩别的mud也可以利用起来
可以参考helllua
或则我的钓鱼机器人
http://pkuxkx.com/forum/viewthre ... xtra=page%3D&page=1
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-11 11:08:31 | 显示全部楼层
不懂LUA。。。路过说下

LZ用java不?看过heritrix的代码?那个叫帅气呀。
你里面有个责任链模式
一个处理过程划分为:筛选、预处理、处理、后处理、过滤。。。。。等等一个完整的生命周期
所有的处理步骤都实现某个约定的借口。把这些处理器配置好后,总的处理器遍历处理器链。

至于处理器的配置,完全使用反射机制就可以实现,这样LZ提供C之后,我们直接写M然后用文本配置就行了。。

就行jsp里面web。xml配置的那样
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-6-14 18:55:24 | 显示全部楼层
感慨一下,写文章需要这篇的资料,翻出来看看,有些感慨
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2011-4-30 11:42:00 | 显示全部楼层
框架用来通配所有游戏和id吗
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-24 12:55 PM , Processed in 0.009323 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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