Vì vậy, đây là bản đồ, giả sử, một hầm ngục ...
##########
# #####
# #####
##########
##########
##########
##########
#### ##
#### ##
##########
Hãy nói rằng anh hùng ở phòng A (ở phía trên bên trái) và mục tiêu của họ (một hoàng tử gặp nạn?) Nằm ở phòng B (phía dưới bên phải). Bản đồ của chúng tôi không cho phép anh hùng tiến tới mục tiêu của họ.
Chúng ta cần thêm một lối đi ...
##########
# #####
# #####
####.#####
####.#####
####.#####
####.#####
#### ##
#### ##
##########
Ở đó, tốt hơn nhiều!
Quy tắc
- Một chương trình hoặc chức năng chấp nhận bản đồ ngục tối (bao gồm các giá trị băm và khoảng trắng, với các hàng được phân tách bằng các ký tự dòng mới).
- Nó sẽ xuất ra một bản đồ với các dấu chấm được thêm vào để biểu thị các đoạn trong tất cả các khoảng trống nằm trên một đường dẫn trực tiếp giữa các ký tự khoảng trắng.
- Nó sẽ không thay đổi độ dài dòng hoặc số dòng.
- Các đoạn đều nằm trong một đường thẳng từ không gian đến không gian.
- Lối đi không thể quay vòng
- Chúng sẽ không nằm giữa không gian và cạnh của bản đồ.
- Sử dụng bất kỳ ngôn ngữ.
- Cố gắng thực hiện chuyển đổi trong vài byte nhất.
- Nếu không có lối đi nào có thể được vẽ, trả lại bản đồ, không thay đổi.
- Bản đồ phải luôn có các giá trị băm xung quanh tất cả các cạnh (Bạn không cần xử lý các khoảng trắng ở cạnh).
- Bản đồ đầu vào luôn là hình chữ nhật, mỗi hàng phải có cùng chiều rộng.
Các trường hợp thử nghiệm
#### ####
# # => # #
# # # #
#### ####
########## ##########
# ##### # #####
# ##### # #####
########## ####.#####
########## => ####.#####
########## ####.#####
########## ####.#####
#### ## #### ##
#### ## #### ##
########## ##########
########## ##########
# ##### # #####
# ##### # #####
########## ##########
########## => ##########
########## ##########
########## ##########
###### ## ###### ##
###### ## ###### ##
########## ##########
########## ##########
# ##### # #####
# ##### # #####
########## ####.#####
########## => ####.#####
#### ### #### ###
########## ######.###
###### ## ###### ##
###### ## ###### ##
########## ##########
########## ##########
# ##### # #####
# ##### # #####
########## ##..######
########## => ##..######
########## ##..######
########## ##..######
## ####### ## .######
## ###### ## ######
########## ##########
########## ##########
# ##### # #####
# ##### # #####
########## #.########
########## => #.########
########## #.########
####### # #.##### #
####### # #.##### #
# ##### # # ..... #
########## ##########
########## ##########
# ##### # #####
# ##### # #####
########## #.########
##### ### => #.### ###
##### ### #.### ###
####### # #.##### #
####### # #.##### #
# ##### # # ..... #
########## ##########
########## ##########
## # ## #
########## ##......##
########## ##......##
########## => ##......##
########## ##......##
########## ##......##
########## ##......##
# ## # ##
########## ##########
########## ##########
#### #### #### ####
####### ## ####..# ##
###### ### ####.. ###
# ### ## # => # ... .. #
# ## ### # # .. ... #
### ###### ### ..####
## ####### ## #..####
#### #### #### ####
########## ##########
#
và.
không?