北大侠客行MUD论坛

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

【梦话连篇】给我一个支点——跨平台通用机器人?(建造ing)

[复制链接]
发表于 2013-7-30 11:56:50 | 显示全部楼层
回复 21# hijacker


    这个跟Emacs没什么关系。你的意图就是mud版的Java?
规定好protocol或是语法,一个机器人到处运行。只需在相应的客户端编写一个“虚拟机”的插件?
对于用户而言感觉不到差异感。

还是,“虚拟机”是服务器提供脚本转换服务,统一语法的机器人解析成tintin,mush等客户端的相应的机器人?

mud归根结底其实就是字处理,这个是perl的强项。
还有这个想法只是针对win上的用户吗?
为什么要远程控制呢?Mac和linux上ssh都是默认带的,ssh最简单吧。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 12:07:38 | 显示全部楼层
连接mud是细节实现,方法很随意,现在的语言都很方便,很容易实现。irc是类似mud一样的聊天室,对irc的处理跟mud很类似,附件是irc频道中用lua实现的机器人。

本帖子中包含更多资源

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

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 12:29:33 | 显示全部楼层
我又细想了一下(我有点啰嗦,呵呵,不好意思啦)
“封装”

函数就是一种封装,是在源程序这个层级上,再高一点,把函数封装就是函数库,继续提高层级,比如把脚本,触发,计时器等等封装就是mushclient插件。可以无限想下去,

把所有mud客户端封装,用户面对的是统一的机器人,统一的语法,中间做这些事情的比如是一个“黑盒子”,黑盒子是I/O是什么样呢?
I, 统一的机器人
O, 解析给不同mudclient的机器人,客户端不同相应的方法也不相同。

好处很明显,用户以后只需一个版本的机器人,而无需考虑客户端的差异。

不算是劣势,其实大家都用一个客户端(如果可以的话),其实就不存在这个问题。
再者,实现这个庞大的计划,不如退而求其次,写相应的机器人转换程序,比如mush到zmud,会省很多不必要的功夫。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-7-30 12:42:51 | 显示全部楼层
回复 22# redcoat

不是很懂这句是什么意思:
   
规定好protocol或是语法,一个机器人到处运行。只需在相应的客户端编写一个“虚拟机”的插件?

但绝对不是这个意思:
还是,“虚拟机”是服务器提供脚本转换服务,统一语法的机器人解析成tintin,mush等客户端的相应的机器人?


我把我的还有很多错误没有处理的半成品传上来你试试看吧,python 3.3写的,只在windows平台下测试过。先运行脚本,然后用mush或zmud连接127.0.0.1:50000,当然理论上来说在其他机器上用mud客户端连接本机ip:50000应该都可以——这就是我说的远程控制。
脚本里自带一个超微型机器人:每三秒发一次hi表情^_^
终极目标:
1. 以后写机器人的时候把复杂的逻辑全部写到这个脚本里,共享给别人,这样不管是zmud用户还是mush用户都可以用,可以一定程度上消除客户端之间的壁垒。
2. 可以把这个没有界面的小脚本挂到树莓派上运行,偶尔telnet到上面看看进度神马的。或者别人的ip上五个坑全被占满了,就可以把id挂在我的ip上,然后在那边自己操作:一种变相的socks代理
3. 4. 5. ……可以自己发挥想象

本帖子中包含更多资源

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

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 12:50:12 | 显示全部楼层
这个帖子炸出来好多变态大神

膜拜下
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-7-30 13:02:37 | 显示全部楼层
本帖最后由 hijacker 于 2013-7-30 01:09 PM 编辑
我又细想了一下(我有点啰嗦,呵呵,不好意思啦)
“封装”

函数就是一种封装,是在源程序这个层级上, ...
redcoat 发表于 2013-7-30 12:29 PM



    我可能大体明白你说的封装是个什么意思,但是认为不需要区分客户端的不同:我把从pkuxkx接收到的生肉烤熟,处理(比如看看脚本里的哪个触发器和这个熟肉能对上号?)之后再重新弄回生肉的样子,发送给客户端,客户端不会知道它曾经熟过^_^;反方向也是这样:客户端接收到的数据解码、处理、重新编码后发送给pkuxkx;还有期间可能会自己产生一些生肉(比如触发、计时器等)直接传送给两端中的一端。不需要管客户端到底是zmud还是mush还是其他什么,只要是基于telnet协议的程序就好。
   至于机器人转换程序,那个的工作量感觉更大,有点像在吵架的小两口之间当和事佬一样,感觉特别难受,自由发挥的空间很小。而且像mush这种不仅有AddTrigger()这样的函数(这种函数还好说,因为它可以直接对应mud的#trigger命令,转换很好写),还有什么local l, w = wait.regexp()这样的几乎无法想象怎样运行于zmud上的东东。。所以我放弃了这种思路。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 15:25:55 | 显示全部楼层
jack马上就要做出北侠全部任务的全自动机器人吧~~
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 16:27:30 | 显示全部楼层
1. 以后写机器人的时候把复杂的逻辑全部写到这个脚本里,共享给别人,这样不管是zmud用户还是mush用户都可以用,可以一定程度上消除客户端之间的壁垒。

可以做个北侠函数库,各种函数,实现和复杂逻辑都在这里实现,zmud和mush写机器人时直接调用就行,很棒!我去年年底写了一个只能mush用的库,大部分是lua,小部分用c写的,写机器人时需要什么工具直接调用即可,无需管逻辑的实现和复杂的构造。
2. 可以把这个没有界面的小脚本挂到树莓派上运行,偶尔telnet到上面看看进度神马的。或者别人的ip上五个坑全被占满了,就可以把id挂在我的ip上,然后在那边自己操作:一种变相的socks代理
3. 4. 5. ……可以自己发挥想象

这个想法太赞了,加油哦,这个一定要实现
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 16:33:41 | 显示全部楼层
回复 29# redcoat


    哇,求借鉴mush库!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-7-30 16:34:12 | 显示全部楼层
回复 25# hijacker


    刚注意到,jack还有树莓派这高级货呢啊!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 06:58 PM , Processed in 0.009699 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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