redcoat
发表于 2013-7-30 11:56:50
回复 21# hijacker
这个跟Emacs没什么关系。你的意图就是mud版的Java?
规定好protocol或是语法,一个机器人到处运行。只需在相应的客户端编写一个“虚拟机”的插件?
对于用户而言感觉不到差异感。
还是,“虚拟机”是服务器提供脚本转换服务,统一语法的机器人解析成tintin,mush等客户端的相应的机器人?
mud归根结底其实就是字处理,这个是perl的强项。
还有这个想法只是针对win上的用户吗?
为什么要远程控制呢?Mac和linux上ssh都是默认带的,ssh最简单吧。
redcoat
发表于 2013-7-30 12:07:38
连接mud是细节实现,方法很随意,现在的语言都很方便,很容易实现。irc是类似mud一样的聊天室,对irc的处理跟mud很类似,附件是irc频道中用lua实现的机器人。
redcoat
发表于 2013-7-30 12:29:33
我又细想了一下(我有点啰嗦,呵呵,不好意思啦)
“封装”
函数就是一种封装,是在源程序这个层级上,再高一点,把函数封装就是函数库,继续提高层级,比如把脚本,触发,计时器等等封装就是mushclient插件。可以无限想下去,
把所有mud客户端封装,用户面对的是统一的机器人,统一的语法,中间做这些事情的比如是一个“黑盒子”,黑盒子是I/O是什么样呢?
I, 统一的机器人
O, 解析给不同mudclient的机器人,客户端不同相应的方法也不相同。
好处很明显,用户以后只需一个版本的机器人,而无需考虑客户端的差异。
不算是劣势,其实大家都用一个客户端(如果可以的话),其实就不存在这个问题。
再者,实现这个庞大的计划,不如退而求其次,写相应的机器人转换程序,比如mush到zmud,会省很多不必要的功夫。
hijacker
发表于 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. ……可以自己发挥想象
hkyyxss
发表于 2013-7-30 12:50:12
这个帖子炸出来好多变态大神
膜拜下
hijacker
发表于 2013-7-30 13:02:37
本帖最后由 hijacker 于 2013-7-30 01:09 PM 编辑
我又细想了一下(我有点啰嗦,呵呵,不好意思啦)
“封装”
函数就是一种封装,是在源程序这个层级上, ...
redcoat 发表于 2013-7-30 12:29 PM http://pkuxkx.com/forum/images/common/back.gif
我可能大体明白你说的封装是个什么意思,但是认为不需要区分客户端的不同:我把从pkuxkx接收到的生肉烤熟,处理(比如看看脚本里的哪个触发器和这个熟肉能对上号?)之后再重新弄回生肉的样子,发送给客户端,客户端不会知道它曾经熟过^_^;反方向也是这样:客户端接收到的数据解码、处理、重新编码后发送给pkuxkx;还有期间可能会自己产生一些生肉(比如触发、计时器等)直接传送给两端中的一端。不需要管客户端到底是zmud还是mush还是其他什么,只要是基于telnet协议的程序就好。
至于机器人转换程序,那个的工作量感觉更大,有点像在吵架的小两口之间当和事佬一样,感觉特别难受,自由发挥的空间很小。而且像mush这种不仅有AddTrigger()这样的函数(这种函数还好说,因为它可以直接对应mud的#trigger命令,转换很好写),还有什么local l, w = wait.regexp()这样的几乎无法想象怎样运行于zmud上的东东。。所以我放弃了这种思路。
nsonline
发表于 2013-7-30 15:25:55
jack马上就要做出北侠全部任务的全自动机器人吧~~
redcoat
发表于 2013-7-30 16:27:30
1. 以后写机器人的时候把复杂的逻辑全部写到这个脚本里,共享给别人,这样不管是zmud用户还是mush用户都可以用,可以一定程度上消除客户端之间的壁垒。
可以做个北侠函数库,各种函数,实现和复杂逻辑都在这里实现,zmud和mush写机器人时直接调用就行,很棒!我去年年底写了一个只能mush用的库,大部分是lua,小部分用c写的,写机器人时需要什么工具直接调用即可,无需管逻辑的实现和复杂的构造。
2. 可以把这个没有界面的小脚本挂到树莓派上运行,偶尔telnet到上面看看进度神马的。或者别人的ip上五个坑全被占满了,就可以把id挂在我的ip上,然后在那边自己操作:一种变相的socks代理
3. 4. 5. ……可以自己发挥想象
这个想法太赞了,加油哦,这个一定要实现ttk_03
nsonline
发表于 2013-7-30 16:33:41
回复 29# redcoat
哇,求借鉴mush库!
nsonline
发表于 2013-7-30 16:34:12
回复 25# hijacker
刚注意到,jack还有树莓派这高级货呢啊!