Giới thiệu
Mọi người đều biết rằng khả năng điều hướng thành công một trường tiểu hành tinh là khoảng 3.720 đến 1. Nhưng bất chấp cảnh báo của bạn, Han Solo vẫn sẵn sàng thử vận may.
Lo sợ cho cuộc sống nhân tạo của mình, bạn quyết định viết mã, theo phương ngữ đặc biệt của con tàu ( đọc: ngôn ngữ Code Golf ưa thích của bạn ), một chương trình tránh tiểu hành tinh sẽ quyết định con đường nào đi vào mê cung ASCII của tiểu hành tinh.
Đầu vào
Falcon Millenium có chương trình lập bản đồ trường tiểu hành tinh, cung cấp dữ liệu tương tự như sau:
| ##### ######### |
| ###### # ### # |
| # # # # #### # |
@ ## ####
|# # # ### ## |
|## ## #### # # |
|#### ##### # ## |
Các hàng trên cùng bên trái của Falcon, các hàng dưới cùng bên phải của Falcon và các cột thể hiện những gì ở phía trước con tàu.
- Mỗi người
#
là một trở ngại. - Mỗi không gian là không gian trống mà con tàu có thể bay vào.
- Đầu vào luôn cao 7 ký tự. Đây là giới hạn chiều rộng ánh xạ tiểu hành tinh.
- Đầu vào luôn dài 32 ký tự (30 cho chính trường và 2 cho giới hạn bắt đầu và kết thúc). Đây là giới hạn độ sâu ánh xạ tiểu hành tinh. Thanh dọc
|
đánh dấu điểm bắt đầu và kết thúc của ánh xạ. @
là chim ưng. Nó luôn ở hàng giữa (hàng thứ 4) và cột đầu tiên trong đầu vào.- Khoảng trống còn lại trong các thanh dọc trên cột cuối cùng là nơi tàu phải đến. Nó luôn ở hàng giữa (hàng thứ 4) và cột cuối cùng trong đầu vào.
Đầu vào có thể được lấy dưới dạng chuỗi nhiều dòng, một chuỗi các chuỗi, từ STDIN hoặc tham số hàm hoặc đọc từ tệp.
Khả năng cơ động
Bạn được TIE-Fighters theo đuổi, do đó bạn phải luôn tiến về phía trước. Do đó, có ba cách con tàu có thể bay ở mỗi bước:
-
Phía trước/
Chuyển tiếp và rẽ trái\
Chuyển tiếp và rẽ phải
Ví dụ: đây là những đường dẫn hợp lệ:
@---
--
/ \ /
@ -
-
/ \
/ \
@ \
Như bạn có thể thấy, luôn có chính xác một lần di chuyển trên mỗi cột. Falcon là một mảnh rác, do đó nó không thể thực hiện những bước ngoặt dữ dội. Có nghĩa là di chuyển như /\
hoặc không\/
được phép . Phải có ít nhất một chuyển tiếp thuần túy -
giữa hai lượt đối diện. Mặt khác, xoay một chiều cho nhiều bước liên tiếp là có thể, như đã thấy ở trên.
Chiếc Falcon gặp sự cố nếu một người di chuyển khiến con tàu rơi vào vị trí có chướng ngại vật. Ví dụ: những di chuyển này dẫn đến sự cố:
@-#
@
\
#
#
/
@
Lưu ý rằng đây không phải là một sự cố:
@-#
\
-
Đầu ra
Bạn phải xuất cùng trường tiểu hành tinh ASCII, với đường dẫn hợp lệ đến cuối. Falcon phải được in ở điểm cuối thay vì điểm bắt đầu.
Ví dụ: một đầu ra hợp lệ cho ví dụ đầu vào được đưa ra trước đó sẽ là:
| ##### ######### |
| ###### #-------- ### # |
| # # #/ # ####\ # |
--------- ## \ #### ----@
|# # # ### \ ## / |
|## ## #### \ #/ # |
|#### ##### #-- ## |
Con đường của bạn chỉ cần không sụp đổ chim ưng. Nó không cần phải là con đường ngắn nhất có thể.
Bạn có thể cho rằng sẽ luôn có ít nhất một con đường có thể đi đến cuối cùng.
Bạn có thể xuất ra STDOUT, trong một tệp hoặc bất kỳ tương đương nào miễn là trường tiểu hành tinh được in chính xác như trong bài đăng này (ví dụ: xuất ra danh sách tọa độ cho đường dẫn không hợp lệ).
Các trường hợp thử nghiệm
Một trường tiểu hành tinh bình thường
| ##### ######### | | ###### # ### # | | # # # # #### # | @ ## #### |# # # ### ## | |## ## #### # # | |#### ##### # ## |
Sản lượng có thể
| ##### ######### | | ###### #-------- ### # | | # # #/ # ####\ # | --------- ## \ #### ----@ |# # # ### \ ## / | |## ## #### \ #/ # | |#### ##### #-- ## |
Trường tiểu hành tinh không đều
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | @ # # # # # # # # # # # # # # |# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # |
Sản lượng có thể
|# # # # # # # # # # # # # # # | | # # # # # # # # # # # # # # #| |# # # # # # # # # # # # # # # | -# #-# #-# #-# #-# #-# #-# #--@ |#\#/#\#/#\#/#\#/#\#/#\#/#\#/# | | #-# #-# #-# #-# #-# #-# #-# #| |# # # # # # # # # # # # # # # |
Lõi tử thần
| # # # # | | # # # | | # # # # # | @ # # # # # | # # # # | | # # # # # | | # # # # |
Sản lượng có thể
| # # # -- # | | --- # # / #\ - | | / #\ # # / # \ /#\ | - # \ # #/ # - # ----@ | # \ # ---- # # | | # \#/ # # # | | # - # # # |
Cái chết sao
|##############################| |##############################| |##############################| @ |##############################| |##############################| |##############################|
Đầu ra
|##############################| |##############################| |##############################| ------------------------------@ |##############################| |##############################| |##############################|
Hang động tiểu hành tinh
|### ##########################| |## # ############### ## ######| |# ### ######## ### ## # #####| @ ###### ###### ### ## ### |######## ### ### ## #########| |########## # ### ## ##########| |########### #####|
Sản lượng có thể
|###-##########################| |##/#\############### ##-######| |#/###--######## ### ##/#\#####| -######\###### ### ##/###-----@ |########--### ### ##/#########| |##########\# ### ##/##########| |###########-------- #####|
Chấm điểm
R2D2 đang bận bơi trong đầm lầy, do đó bạn sẽ phải tự lập trình bộ điều khiển của Falcon, thật tẻ nhạt. Do đó mã ngắn nhất sẽ thắng .
-
trong đường dẫn ở mỗi lượt, được định nghĩa là di chuyển "về phía trước". Nhưng các bước di chuyển thực tế luôn là hai đường chéo-trái theo sau là hai đường chéo-phải.