class DungeonMap

Public Class Methods

new(map) click to toggle source
# File lib/dungeon_map.rb, line 12
def initialize map
  @map = map
end

Public Instance Methods

choices(location) click to toggle source
# File lib/dungeon_map.rb, line 25
def choices location
  doors = doors_at location
  door_choices = {}
  doors.keys.each do |command|
    door_choices[command.to_sym] = "Go through the #{DoorNames[command]}."
  end
  Choice.new 'Where will you go next?', door_choices
end
door_to(current_location, command) click to toggle source
# File lib/dungeon_map.rb, line 16
def door_to current_location, command
  doors = doors_at current_location
  if doors[command.to_sym]
    return doors[command.to_sym]
  else
    return current_location
  end
end
doors_at(location) click to toggle source
# File lib/dungeon_map.rb, line 34
def doors_at location
  doors = {}
  @map[location].each_with_index do |door, next_room|
    doors[door.to_sym] = next_room if door != ' '
  end
  doors
end
to_s() click to toggle source
# File lib/dungeon_map.rb, line 42
def to_s
  rows = []
  @map.each_with_index do |row, i|
    rows << "#{i}|#{row.join '|'}"
  end
  rows.join "\n"
end