Bạn là một con chuột. Tất cả bạn bè chuột của bạn đã bị bắt, và bất tỉnh và bị mắc kẹt trong một mê cung chỉ có một lối vào / lối ra. Bạn tình cờ có một bản đồ hoàn hảo của mê cung, vì vậy bạn có thể vạch ra một giải pháp để xông vào và mang tất cả đến nơi an toàn. Tuy nhiên, mê cung được bảo vệ với một hệ thống an ninh sẽ kích hoạt cảnh báo nếu 1000
đạt đến ngưỡng , khiến bạn bị bắt và thất bại trong nhiệm vụ giải cứu.
Từ các nghiên cứu trước đây về mê cung của bạn, mỗi ô vuông bạn bước (nghĩa là mỗi chuyển động ngang hoặc dọc - chuột không thể di chuyển theo đường chéo ) thêm 1
vào bộ đếm của hệ thống an ninh. Tuy nhiên, nếu bạn đang mang một vật nặng (có thể là một khối thuốc nổ hoặc một người bạn chuột vô thức), thì nó sẽ thêm vào 2
vì nó phát hiện thêm áp lực. Quảng trường ra / vào không có hệ thống bảo mật này và do đó không thêm vào quầy.
Bạn có một nguồn cung cấp thuốc nổ không giới hạn mà bạn đã mang đến lối vào, vì vậy bạn chỉ cần thổi tung tất cả các bức tường để giải phóng bạn bè. Nhưng bạn cần thận trọng với việc đó, vì mỗi vụ nổ làm tăng thêm 50
khả năng chống chịu áp lực. Ngoài ra, bạn chỉ có thể mang theo một thứ một lúc, một con chuột hoặc một khối thuốc nổ. Vì mỗi khối thuốc nổ chỉ có thể kích nổ một không gian tường, điều này có nghĩa là nếu có nhiều bức tường liên tiếp, bạn cần thực hiện một chuyến đi tay không trở lại lối vào để lấy thêm.
Ví dụ làm việc thông qua
Giả sử mê cung của chúng ta trông như sau:
######
#M# E#
######
Tôi sẽ sử dụng c
cho quầy. Chúng tôi bắt đầu tại E
ntrance, di chuyển một hình vuông bên trái trong khi mang thuốc nổ , c=2
. Chúng tôi kích nổ thuốc nổ để nổ tung bức tường c=52
,. Chúng tôi di chuyển hai hình vuông sang trái, tay không, để lấy c=54
và bây giờ chúng tôi đang đứng trên hình vuông của con chuột. Chúng tôi đón bạn mình và di chuyển 3 hình vuông trở lại E
xit, nhưng hình vuông cuối cùng không được tính vì nó không có bất kỳ cảm biến nào, vì vậy đó chỉ là 2 hình vuông có thứ gì đó trên lưng. Điều đó có nghĩa là khi chúng ta đi đến lối ra với con chuột cuối cùng, c=58
ít hơn 1000
, và do đó nhiệm vụ thành công.
Thử thách
Đưa ra một mê cung đầu vào, đầu ra cho dù bạn, anh hùng chuột, có thể giải cứu thành công tất cả những con chuột bị mắc kẹt trong các ràng buộc được nêu ở trên, hoặc liệu nhiệm vụ có phải là một thất bại.
Đầu vào
- Một mê cung 2D ở bất kỳ định dạng có thể chấp nhận (chuỗi đa dòng, mảng chuỗi, v.v.).
- Đối với thử thách này, tôi sẽ sử dụng
#
cho cả tường bên trong và bên ngoài,M
cho những người bạn chuột vàE
cho lối vào. - Lối vào sẽ không bao giờ liền kề với một bức tường bên trong (sẽ luôn có ít nhất một không gian để di chuyển tự do).
- Bạn có thể thay thế bất kỳ ký tự ASCII có thể in nào bạn muốn miễn là nó phù hợp. Điều này không cho phép bạn sử dụng hai biểu tượng khác nhau cho các bức tường bên trong so với các bức tường bên ngoài, miễn là bạn duy trì tính nhất quán (ví dụ: nếu bạn chọn sử dụng
@
cho các bức tường bên trong và để lại#
cho bên ngoài, mọi bức tường bên trong phải@
và mọi bức tường bên ngoài#
). - Mê cung sẽ luôn được bao bọc hoàn toàn bởi các bức tường, nhưng không nhất thiết phải là hình chữ nhật. Nếu muốn, bạn có thể giả sử rằng mê cung được đệm bằng khoảng trắng để tạo đầu vào hình chữ nhật (tùy chọn).
- Mê cung có thể có các phần không thể truy cập mà không có thuốc nổ.
- Bạn không thể kích hoạt các bức tường bên ngoài của mê cung.
Đầu ra
Một giá trị trung thực / falsey . Sự thật cho "Có, con chuột có thể giải cứu mọi con chuột khác" hoặc Falsey cho "Không, hệ thống báo động sẽ bị ngắt."
Những quy định
- Một chương trình đầy đủ hoặc một chức năng được chấp nhận.
- Sơ hở tiêu chuẩn bị cấm.
- Đây là môn đánh gôn, vì vậy tất cả các quy tắc chơi gôn thông thường đều được áp dụng và mã ngắn nhất (tính bằng byte) sẽ thắng.
Ví dụ
Ví dụ thật, cách nhau bởi các dòng trống.
#####
#M E#
#####
######
#M# E#
######
########
#E # M#
# # #
# # #
# #
########
#############################
# ## # # #
# M ## M # # #
# ## # M # E #
#M ## # # #
#############################
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMM MM#
#MMMMMMMMMMMME#
###############
Ví dụ Falsey, cách nhau bởi các dòng trống
#############################
#M ## ## ## #
# M ## M ## ## #
# ## ## M ## E #
#M ## ## ## #
#############################
#############################
########
########
# # #
# M # M#
########
#####
# M #
#####
#####
#####
#####
###################
# # # ## ## # # #
#M#M#M## E ##M#M#M#
# # # ## ## # # #
###################
#######
######
#####
####
# M#
####
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMME#
###############