我正在开始ruby书,这是我的代码,它给出了以下错误:
in 'show_current_description': undefined method 'full_description' for nil:NilClass (NoMethodError)
代码如下.任何帮助表示赞赏.谢谢!
class Dungeon
attr_accessor :player
def initialize(player_name,start_location)
@player=Player.new(player_name,start_location)
puts @player.location
@rooms=[]
show_current_description
end
def show_current_description
@rm=find_room_in_dungeon(@player.location)
@rm.full_description
end
def find_room_in_dungeon(reference)
@rooms.detect{|room| room.reference == reference; puts room.full_description}
end
def add_room(reference,name,description,connections)
@rooms << Room.new(reference,name,description,connections)
end
Player=Struct.new(:name,:location)
class Room
attr_accessor :reference, :name, :description, :connections
def initialize(reference,name,description,connections)
@reference=reference
@name=name
@description=description
@connections=connections
end
def full_description
"You are in " + @description
end
end
end
d=Dungeon.new("Good Man",:small_cave)
d.add_room(:small_cave,"Small Cave","This is a small claustrophobic cave", {:east => :largecave}) …Run Code Online (Sandbox Code Playgroud) ruby ×1