看板 Ruby 關於我們 聯絡資訊
環境: e.g. Ruby 1.8.6 OS:Windows XP 大家好 我是程設新手 不好意思 可能標題會讓很多人看不太懂 問題是這樣 我在一個程式裡要設定一個變數Capatity_cur 這個變數Capacity_cur會根據我的主程式而改變 我應該要如何設定這個變數 Capacity_cur:目前這一回合的能量 由於每一個成員在每一回合所做的動作不一樣 所以能量也不一樣 舉例來說: Capacity_cur(meber18)!=Capacity_cur(meber37) 在Round34 程式大概是這樣: module Arc InitialCapacity = 40000 end Class XXX #XXX是類別的名稱 include Arc attr_accessor :capacity ............ ............ ............. ............ def initialize() @capacity = Arc::InitialCapacity @ID = id ............ end ................. ................ end round = 0 ============================ #以下為主程式 until mebers.empty? do round += 1 mebers = Array.new{|meber| ........} ....................... ....................... ....................... Dis = Capacity_cur/round if .......... #以下的程式碼會根據一些情況 capacity -= 80 #每回合每一個meber的capacity都會減少 elseif ....... #但是減少的量不同 capacity -= 40 else ............. capacity -= 20 end ............. break if round = 50 end exit(0) 我所想的方法是 定義一個新的雜湊. 程式碼改寫為: mebers = Array.new{|| .........} meber_capacity = {"meber.ID"=>"meber.capacity"} .................. .................. Dis = meber_capacity["meber.ID"].to_i/round 但是沒成功,想請問大家應該如何設定? x -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.27.212
godfat:對不起,真的沒看懂,可否去掉程式用文字說明一次? 06/21 02:33
godfat:例如第一回合有哪些數字,第二回合應該變哪些 06/21 02:33
Schelfaniel:用雜湊應該可行,沒成功的原因是?? 06/21 06:35
Schelfaniel:meber_capacity = {"meber.ID"=>meber.capacity}這樣? 06/21 11:54
Schelfaniel:另,建議 Key 用 symbole 如 :member_id 這樣 06/21 11:58
Schelfaniel:symbol 06/21 19:13