文字MUD游戏论坛-天下泥潭群英会-水泊梁山  

返回   文字MUD游戏论坛-天下泥潭群英会-水泊梁山 > 西游之旅 > 『 机器人制作及下载 』

『 机器人制作及下载 』 如何从开始简单的数组、触发,到复杂的路径、地图、数据库等等。如何考虑周全的制作全自动的机器人让它能够24小时不停的帮你练功。

发表新主题 回复
 
LinkBack 主题工具 主题评分 显示模式
旧 2009-05-16   #1
初级会员
级别:2 | 在线时长:15小时 | 升级还需:15小时级别:2 | 在线时长:15小时 | 升级还需:15小时
 
mdcfil 的头像
 
注册: 07年11月18日
帖子: 46
声望力: 0
声望: 23 mdcfil 初领妙道
积分:8
精华:1
现金:238两梁山币
资产:238两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
请教 如何转换中文数字为阿拉伯数字?

如题,在编写解迷机器时,最后涉及清理垃圾的问题,我用的是#trigger {$s%x~({*}~)} {drop %1}这个触发,但首先要将金子和银子以及钱物等存掉。否则会一起扔掉。开始我想到用#trigger {{金子|银子|钱}} {#gag}这个触发来避免丢钱的动作,但不管用。不知道谁有好的办法。另外也请教下将中文数字转换为阿拉伯数字的方法。多谢!!
mdcfil 当前离线  
回复时引用此帖

旧 2009-05-16   #2
黄金会员
黄金会员五级会员
级别:10 | 在线时长:287小时 | 升级还需:43小时级别:10 | 在线时长:287小时 | 升级还需:43小时级别:10 | 在线时长:287小时 | 升级还需:43小时级别:10 | 在线时长:287小时 | 升级还需:43小时
 
liccry 的头像
 
注册: 05年01月27日
来自: +1 GMT
帖子: 569
声望力: 27
声望: 72 liccry 略通道行
积分:24
精华:5
现金:52两梁山币
资产:1002两梁山币
致谢数: 0
获感谢文章数:1
获会员感谢数:1
回复: 请教 如何转换中文数字为阿拉伯数字?

有两种解决方案,给你转一下吧:

1.
#if %1=一 {%2=1}
#if %1=二 {%2=2}
.... ....
#if %1=十 {%2=10}
这部分是 alias change
#variable temporary1 {0} {0}
#variable temporary2 {0} {0}
#variable temporary3 {0} {0}
#variable temporary4 {0} {0}
#variable temporary5 {0} {0}
#if %pos(万,%1) {change %left(%1,%pos(万,%1)-1) temporary1}
#if %pos(千,%1) {change %rightback(%left(%1,%pos(千,%1)-1),2) temporary2}
#if %pos(百,%1) {change %rightback(%left(%1,%pos(百,%1)-1),2) temporary3}
#if %pos(十,%1) {change %rightback(%left(%1,%pos(十,%1)-1),2) temporary4}
#if %pos(十,%1) {change %rightback(%1,2) temporary5}
#if (@temporary5>9) {temporary5=0}
#if (%begins(%1,十)) {temporary4=1}
#math %2 (10000*@temporary1+1000*@temporary2+
100*@temporary3+10*@temporary4+@temporary5) (这行和上一行是同一行)
这部分是alias changeall

2.
new一个alias 名称为convert,value为 number=%1;
number=%replace( @number, 零, 0) ;number=%replace( @number, 一, 1); .......
number=%replace( @number, 八, 8);number=%replace( @number, 九, 9);
number=%replace( @number, 十, "*10+") ;number=%replace( @number, 百, "*100+");
number=%replace( @number, 千, "*1000+");number=%replace( @number, 万, "*10000+");
number=%replace( @number, " ", "")
#if (%ends( @number, +)) {number=%concat( @number, 0)}
#if (%begins( @number, *)) {number=%concat( 1, @number)}
number=%eval( @number)
#show @number
用法是convert后面加中文数字,结果输出阿拉伯数字
原理是把中文数字逐一转换为计算式子,通过%eval运算
但是范围是小于10w
有兴趣的人可以想想原因,以及如何计算超过10w的
希望对你们写机器有帮助
另注: 我用的是721, 如果你用的是555及以下版本,去掉语句中间的空格

燕燕轻盈,                 别后书辞,
莺莺娇软,                 别时针线,
分明又向华胥见。              离魂暗逐郎行远
夜长争得薄情知,              淮南皓月冷千山,
春初早被相思染。              冥冥归去无人管。
liccry 当前离线  
回复时引用此帖
旧 2009-05-16   #3
初级会员
级别:2 | 在线时长:15小时 | 升级还需:15小时级别:2 | 在线时长:15小时 | 升级还需:15小时
 
mdcfil 的头像
 
注册: 07年11月18日
帖子: 46
声望力: 0
声望: 23 mdcfil 初领妙道
积分:8
精华:1
现金:238两梁山币
资产:238两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

1.
#if %1=一 {%2=1}

这个语句我开始也试过,不知道为啥,不起作用,不能正确赋值。注:我用的462编写的解迷机器。

2、这部分是 alias change
#variable temporary1 {0} {0}
#variable temporary2 {0} {0}
#variable temporary3 {0} {0}
#variable temporary4 {0} {0}
#variable temporary5 {0} {0}
#if %pos(万,%1) {change %left(%1,%pos(万,%1)-1) temporary1}
#if %pos(千,%1) {change %rightback(%left(%1,%pos(千,%1)-1),2) temporary2}
#if %pos(百,%1) {change %rightback(%left(%1,%pos(百,%1)-1),2) temporary3}
#if %pos(十,%1) {change %rightback(%left(%1,%pos(十,%1)-1),2) temporary4}
#if %pos(十,%1) {change %rightback(%1,2) temporary5}
#if (@temporary5>9) {temporary5=0}
#if (%begins(%1,十)) {temporary4=1}
#math %2 (10000*@temporary1+1000*@temporary2+
100*@temporary3+10*@temporary4+@temporary5) (这行和上一行是同一行)
这部分是alias changeall

第二部分看不太懂,大侠能不能给个简短的说明,我也再研究下mud指令和函数。先谢了!!

3.
new一个alias 名称为convert,value为 number=%1;
number=%replace( @number, 零, 0) ;number=%replace( @number, 一, 1); .......
number=%replace( @number, 八, 8);number=%replace( @number, 九, 9);
number=%replace( @number, 十, "*10+") ;number=%replace( @number, 百, "*100+");
number=%replace( @number, 千, "*1000+");number=%replace( @number, 万, "*10000+");
number=%replace( @number, " ", "")
#if (%ends( @number, +)) {number=%concat( @number, 0)}
#if (%begins( @number, *)) {number=%concat( 1, @number)}
number=%eval( @number)
#show @number

%replace的命令在462下面运用貌似有问题,我试过{%replace(二十,二十,20);%replace(三十,三十,30)}这个语句,每次不管触发数字是二十还是三十,结果返回值都是30,不知道问题出在什么地方,望高手指教。这里我用具体数字替代了变量。另外赋值的变量省略了。
mdcfil 当前离线  
回复时引用此帖

旧 2009-05-16   #4
黄金会员
黄金会员五级会员
级别:10 | 在线时长:287小时 | 升级还需:43小时级别:10 | 在线时长:287小时 | 升级还需:43小时级别:10 | 在线时长:287小时 | 升级还需:43小时级别:10 | 在线时长:287小时 | 升级还需:43小时
 
liccry 的头像
 
注册: 05年01月27日
来自: +1 GMT
帖子: 569
声望力: 27
声望: 72 liccry 略通道行
积分:24
精华:5
现金:52两梁山币
资产:1002两梁山币
致谢数: 0
获感谢文章数:1
获会员感谢数:1
回复: 请教 如何转换中文数字为阿拉伯数字?

引用:
作者: mdcfil 查看帖子
1.
#if %1=一 {%2=1}

这个语句我开始也试过,不知道为啥,不起作用,不能正确赋值。注:我用的462编写的解迷机器。

2、这部分是 alias change
#variable temporary1 {0} {0}
#variable temporary2 {0} {0}
#var...
简单说,就是%pos找到"万"字对应的位置,比如字串“一万”,万对应的位置是3,然后用alias change,把万之前的一个汉字转化为数字,然后赋给temporary1,然后是千,百,十,最后将temporary1到5进行计算,这个方法最多能计算99999,再多就会出问题。

至于你说的%replace的问题,我想可能跟你replace的字符中都有“十”有关,可以这样解决:
temp=二十
temp=%replace(@temp,二,2)
temp=%replace(@temp,三,3)
temp=%replace(@temp,十,*10)
temp=%eval(@temp)
#SA @temp

然后更改temp的汉字表述为二十或者三十,看看结果是否正确。
这个就是方法二的简单表述。
liccry 当前离线  
回复时引用此帖
旧 2009-05-17   #5
初级会员
级别:2 | 在线时长:15小时 | 升级还需:15小时级别:2 | 在线时长:15小时 | 升级还需:15小时
 
mdcfil 的头像
 
注册: 07年11月18日
帖子: 46
声望力: 0
声望: 23 mdcfil 初领妙道
积分:8
精华:1
现金:238两梁山币
资产:238两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

去试试看,谢了。。。。。。。。。。
mdcfil 当前离线  
回复时引用此帖
旧 2009-05-28   #6
中级会员
级别:2 | 在线时长:21小时 | 升级还需:9小时级别:2 | 在线时长:21小时 | 升级还需:9小时
 
kulak 的头像
 
注册: 09年04月25日
来自: 长安
帖子: 50
声望力: 17
声望: 18 kulak 初领妙道
现金:28两梁山币
资产:28两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

不知道怎么样,学习学习
kulak 当前离线  
回复时引用此帖

旧 2009-06-02   #7
高级会员
级别:3 | 在线时长:30小时 | 升级还需:20小时级别:3 | 在线时长:30小时 | 升级还需:20小时级别:3 | 在线时长:30小时 | 升级还需:20小时
 
shle 的头像
 
注册: 06年06月29日
来自: 长安
帖子: 125
声望力: 21
声望: 17 shle 初领妙道
现金:128两梁山币
资产:366两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

看的人一个头两个大了还没看来是怎么回事
美女 shle 当前离线  
回复时引用此帖
旧 2009-06-05   #8
中级会员
级别:2 | 在线时长:21小时 | 升级还需:9小时级别:2 | 在线时长:21小时 | 升级还需:9小时
 
net0532 的头像
 
注册: 09年05月15日
帖子: 62
声望力: 17
声望: 10 net0532 闻道则喜
现金:72两梁山币
资产:72两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

很强大~~~很复杂
net0532 当前离线  
回复时引用此帖
旧 2009-11-11   #9
中级会员
级别:2 | 在线时长:24小时 | 升级还需:6小时级别:2 | 在线时长:24小时 | 升级还需:6小时
 
xyuer 的头像
 
注册: 07年03月08日
帖子: 55
声望力: 20
声望: 31 xyuer 初领妙道
积分:1
精华:1
现金:71两梁山币
资产:71两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

引用:
作者: net0532 查看帖子
很强大~~~很复杂
4.62可以用的:
#alias tran {#var %1 0;#var tr_num %2;tr_num=%remove("零",@tr_num);tr_num=%replace(@tr_num,"一","1");tr_num=%replace(@tr_num,"二","2");tr_num=%replace(@tr_num,"三","3");tr_num=%replace(@tr_num,"四","4");tr_num=%replace(@tr_num,"五","5");tr_num=%replace(@tr_num,"六","6");tr_num=%replace(@tr_num,"七","7");tr_num=%replace(@tr_num,"八","8");tr_num=%replace(@tr_num,"九","9");#if %pos("十",@tr_num)=1 {tr_num=%replace(@tr_num,"十","10|")} {tr_num=%replace(@tr_num,"十","0|")};tr_num=%replace(@tr_num,"百","00|");tr_num=%replace(@tr_num,"千","000|");tr_num=%replace(@tr_num,"万","0000|");#forall @tr_num {#add %1 %i}}

用法:tran result "八万八千八百八十八"
然后@result就会被赋值为88888
xyuer 当前离线  
回复时引用此帖

旧 2009-12-04   #10
等待邮件验证会员
级别:2 | 在线时长:21小时 | 升级还需:9小时级别:2 | 在线时长:21小时 | 升级还需:9小时
 
fyun 的头像
 
注册: 09年11月26日
帖子: 88
声望力: 17
声望: 19 fyun 初领妙道
现金:24两梁山币
资产:212两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

巨蟒怪一把抓住了你!
fyun 当前离线  
回复时引用此帖

发表新主题 回复

添加到书签


发帖规则
不可以发表主师
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用


相似的主题
主题 主题作者 论坛 回复 最后发表
请教 blessblan 『 巫师天下 』 1 2005-06-03 02:55
新人。。。。请教! jdhl 『 梁山论剑 』 7 2004-11-21 09:44
请教feng_yue asdwer 『 梁山论剑 』 2 2003-09-23 18:23
请教 lavafly 『 梁山论剑 』 6 2003-07-02 12:15
请教 补锅佬 『 网站提问建议申请区 』 4 2002-06-05 08:58


所有时间均为格林尼治时间 +9, 现在的时间是 06:12.


Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue

Content Relevant URLs by vBSEO 3.6.1