|
1。 对于string类型变量,可以用 %numwords来实现 %numitems的部分功能。 (全部功能是否能实现,我还不知道)
例子: #var a {w|s|e|e|e|w|w|w|n|e}
#var e %numwords(@a,|)
#say @e
结果显示 是 10
2. %ismember函数,在462中只能判断逻辑真假,无法确定某个值在string中的位置,这与高级版本中的该函数不同。 在462中实现该功能可以用自身嵌套的alias:
#var fangxiang {n|e|nw|ne|nu|nd|eu|ed|u|enter|s|w|se|sw|sd|su|wd|wu|d|out}
#var q ne; // 给q 赋值 ne
#var fangxiangnum 1;
#alias chazhaofangxiang {#var fangxiangzhi %word(@fangxiang,@fangxiangnum,|);
#if (@fangxiangnum<=20) {#if (@fangxiangzhi!=@q) {#add fangxiangnum
1;chazhaofangxiang} {#say @fangxiangnum}} {#say 查找失败} } 这个alias 查找
q代表的 ne ,在 fangxiang 列表里面的位置。 检查之后是4。
------------------------------------------------------------------------------------------------------------
关于462中的 %pos 函数,试验结果不理想 :
#var fangxiang {n|e|nw|ne|nu|nd|eu|ed|u|enter|s|w|se|sw|sd|su|wd|wu|d|out}
#var e %pos(eu,@fangxiang)
#say @e , 结果显示17,因为 "|" 在这个函数里面也被认做一个字符,所以用算法
(17+1)/2=9,证明,这个函数把u, 当作是eu 来认了。 (这个问题还要请高手来指点,如何解决)
-----------------------------------------------------------------------------------------------
462中,没有%item 函数, 需要用一些方法绕过去。比如:
#var a {w|s|e|e|e|w|w|w|n|e}
#var b 1
#var d %numwords(@a,|) // 这个是a中路径的步数。
#alias zou {#var c %word(@a,@b,|);
#if (@b<=@d) {#exec @c;
#wa 1000;
#add b 1;
zou} {wolf}}
打入zou,然后按回车,就能走完从扬州客栈到东大街,然后原路返回,还发个emote表情。呵呵
先试验了这几个。以后的慢慢玩。
[ 本帖最后由 hotel 于 2011-5-3 03:15 PM 编辑 ] |
|