我绝不是专家,在通过Readline输入处理对象时遇到了一些麻烦。
我有一个Player类,一个Inventory类和一个Item类,我希望玩家能够输入“穿砖”并使其与数组Inventory.contents中的Item.name匹配并添加该项到Player.worn。这就是我所拥有的:
hypervisor.cpuid.v0 = "FALSE"
我有一个Readline提示符接受输入字符串的第一个标记作为命令,这里的'wear'作为一个案例,但是我很难掌握如何匹配数组中对象内的后续字符串一个单词的对象。
inv.contents.inspect:
class Player
def wear(item)
@worn << item
end
end
class Inventory
attr_accessor :contents
def initialize
@contents = []
@stick = Item.new('a brown stick', 'long and pointy')
@brick = Item.new('a red brick', 'rough and heavy')
@contents << @stick
@contents << @brick
end
def list_contents
@contents.each {|item| puts item.name }
nil
end
end
class Item
attr_accessor :name, :desc
def initialize(name, desc)
@name = name
@desc = desc
end
end
player = Player.new
inv = Inventory.new
我怎么能通过Array inv.contents搜索“穿砖”来匹配@ name =“a red brick”并选择该项输入Player.wear?
@ c650:谢谢。看起来已经解决了!
新课程:
[#<Item:0x007fcf61935bb0 @name="a brown stick", @desc="long and pointy">, #<Item:0x007fcf61935b38 @name="a red brick", @desc="rough and heavy">]