Project1
标题:
怎么样把某个变量的每一位数都提取出来?
[打印本页]
作者:
wolves
时间:
2014-2-9 12:12
标题:
怎么样把某个变量的每一位数都提取出来?
假如有一个变量,值是1523,我想要另外4个变量的值一个为这个变量的千位,一个为这个变量的百位,一个为这个变量的十位,一个为这个变量的个位,该怎么样处理???
作者:
天地有正气
时间:
2014-2-9 12:20
本帖最后由 天地有正气 于 2014-2-10 09:00 编辑
两种办法。
一种,利用数学方法,一通运算得出,稍后补上。
一种,在保证变量大于1000小于10000的时候,用:
变量名.to_s.split("")[0]
这个是取第一位。
作者:
kuerlulu
时间:
2014-2-9 21:45
本帖最后由 kuerlulu 于 2014-2-10 22:56 编辑
很抱歉在下一天都没上线
【题外话
class Interpreter
def 取每一位(var, first_tvar)
$game_variables[var].to_s.split.each_with_index{|s,index| $game_variables[first_tvar+index]= s.to_i}
end
end
复制代码
首先将上述脚本丢到main前
然后[事件]>[脚本]中输入
取每一位(1,2)
复制代码
就会将1号变量的数的每一位赋值给2,3,4...(如果有这么多位的话)号变量
如先设置
1
号变量为123456
然后[事件]>[脚本]> 取每一位(
1
,
3
)
然后3号变量就是1,4号变量就是2,以此类推
补充,根据LX的方法重定义一下(用法不变):
class Interpreter
def 取每一位(var, first_tvar)
a = $game_variables[var]
b = [];(b.push(a%10);a/=10) while a > 0;b.reverse!
b.each_with_index{|s,index| $game_variables[first_tvar+index]= s}
end
end
复制代码
作者:
yagami
时间:
2014-2-9 22:45
话说LS的都把算法都忘了嘛 一个int 非要转成字符串- - 虽然简单 但这种做法是不对的啊
a = 1234
b = []
while a >0
b.push(a%10)
a/=10
end 这样就把每个位都放到个数组里了
作者:
eve592370698
时间:
2014-4-21 11:38
天地有正气 发表于 2014-2-9 12:20
两种办法。
一种,利用数学方法,一通运算得出,稍后补上。
一种,在保证变量大于1000小于10000的时候,用 ...
已经有了标准答案可以设定为已解决。
补充:变量该方法不支持浮点数。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1