Item + new($name, $points) + getName, getPoints Room + new($name, $description, $room_north, $room_south, $room_west, $room_east, @item) + addItem($item), removeItem($name) + getName, getDescription, ... Map + load($filename) + initialize_rooms($filename) + getRoom($name), getRoom($row, $col) Player + new($name, $current_room, $points) + move($direction) + take($item_name) + drop($item_name) # perhaps a good addition + throw_away($item_name) # perhaps also a good addition + look($item_name) + getName, getCurrentRoom, getPoints, getInventory : returns @item Game + new($map, %player_name_and_current_rooms) + quit + getMap, getPlayer : return @player