加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 b200077 于 2020-5-8 22:06 编辑
有没有办法使用输入值当做方法去引用呢?引用的类会分别使用不同名子的方法,主要如下,或者有没有更简单的写法
def equips_effict(ability) n = {} case ability when "death" #獲取敵方死亡發動的能力 equip_slots.size.times do |i| if @equips[i] != nil value = @equips[i].death if n.has_key?(value[0]) n[value[0]] += value[1] else n[value[0]] = value[1] end end add_ability(n) end when "install_cost" #獲取敵方死亡發動的能力 equip_slots.size.times do |i| if @equips[i] != nil value = @equips[i].install_cost puts "value為#{value}" if value != nil if n.has_key?(value[0]) n[value[0]] += value[1] else n[value[0]] = value[1] end end end puts "install_cost為#{n}" add_ability(n) end when "atk_settle" #獲取敵方死亡發動的能力 equip_slots.size.times do |i| if @equips[i] != nil value = @equips[i].atk_settle if value != nil if n.has_key?(value[0]) n[value[0]] += value[1] else n[value[0]] = value[1] end end end end puts "atk_settle為#{n}" #增加能力 add_ability(n) end end
def equips_effict(ability)
n = {}
case ability
when "death"
#獲取敵方死亡發動的能力
equip_slots.size.times do |i|
if @equips[i] != nil
value = @equips[i].death
if n.has_key?(value[0])
n[value[0]] += value[1]
else
n[value[0]] = value[1]
end
end
add_ability(n)
end
when "install_cost"
#獲取敵方死亡發動的能力
equip_slots.size.times do |i|
if @equips[i] != nil
value = @equips[i].install_cost
puts "value為#{value}"
if value != nil
if n.has_key?(value[0])
n[value[0]] += value[1]
else
n[value[0]] = value[1]
end
end
end
puts "install_cost為#{n}"
add_ability(n)
end
when "atk_settle"
#獲取敵方死亡發動的能力
equip_slots.size.times do |i|
if @equips[i] != nil
value = @equips[i].atk_settle
if value != nil
if n.has_key?(value[0])
n[value[0]] += value[1]
else
n[value[0]] = value[1]
end
end
end
end
puts "atk_settle為#{n}"
#增加能力
add_ability(n)
end
end
这三个判断只差在@equips.方法名上,能不能写成一个就好 |