作者makoto63215 (隐匿的老头)
看板Ruby
标题Re: [问题] 如何设定一个会变动的Parameter
时间Sun Jun 21 12:41:51 2009
※ 引述《makoto63215 (隐匿的老头)》之铭言:
: 环境:
: e.g. Ruby 1.8.6 OS:Windows XP
:
抱歉 的确说得不清楚
下面这些程式码是要模拟一个假想情况:
在一个边长2公里的正方形空地,乱数分布100个人
每个人身上都有一个ID供辨认,然後每个人一开始都带有固定的能量
然後每一次每个人动作不同,
动作有站着不动2分钟,原地跑步2分钟,青蛙跳20下,伏地挺身20下..等
所以每个人每次消耗的能量也不一样 根据下面的if叙述来决定做哪一种动作
我的用意就是要设定一个变数 找出每一次每个人身上所剩余的能量
那个变数名称是Capacity_cur
下面是修正的程式码
: module Arc
: InitialCapacity = 40000
: end
: Class XXX
: include Arc
: attr_accessor :capacity
: ............
: ............
: .............
: ............
: def initialize()
: @capacity = Arc::InitialCapacity
: @ID = id
@site = site
: ............
: end
: .................
: ................
: end
srt = 0.67
srand(0)
total = 100
: 50.times {
: mebers = Array.new(total){|| XXX.new([(rand*50),(rand*50)] ) }
: .......................
: .......................
: Capacity_cur = {"mebers.ID"=>"mebers.capacity"}
: Dis = Capacity_cur*srt
: if .................
: .................
: elseif .............
: .............
: else .............
: .............
: end
: .............
: }
: exit(0)
ps:先前想的杂凑,如果不在Capacity_cur後方加上 to_f ,就会产生下面的讯息:
in '*': String can't be coerced into Float(TypeError)
我的解读是 Capacity_cur的值,被当作是字串,所以不能跟浮点数相乘
但是加上 to_f後,就没有跑出任何讯息了
我觉得Capacity_cur後面加上to_f,判定值为0
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.27.212