Re: [問題] 如何設定一個會變動的Parameter
※ 引述《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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 4 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章