Đây là một thử thách cảnh sát và tên cướp . Trả lời ở đây nếu bạn là một cảnh sát (người tạo ô chữ), hãy trả lời câu hỏi đồng hành nếu bạn là một tên cướp (người giải ô chữ). Bạn có thể đảm nhận cả hai vai trò.
Cảnh sát (Puzzlers)
Nhiệm vụ của bạn là viết một trò chơi ô chữ 10 × 10 trong đó, thay vì các từ hoặc cụm từ, các đoạn mã là giải pháp cho các đầu mối. Mỗi đầu mối sẽ là một chuỗi các ký tự không trống, do đó việc chạy đoạn mã mà nó đề cập sẽ in chuỗi đó ra thiết bị xuất chuẩn.
Bài viết của bạn phải bao gồm ba điều:
- Lưới ô chữ 10 × 10 trống của bạn , sử dụng
#
cho bóng tối (dấu phân cách đầu mối) và_
cho đèn (ô được điền vào).- Mỗi chuỗi ngang hoặc dọc từ 2 đèn trở lên (giới hạn bởi bóng tối hoặc cạnh lưới) là một mục bạn phải viết một đầu mối cho. Để thuận tiện, bạn nên đánh số này theo cách thông thường (từ trái sang phải, từ trên xuống dưới) bằng cách thay thế
_
ở đầu mỗi mục bằng một mã định danh ký tự duy nhất (ví dụ 1, 2, ..., A, B , ...). - Lưới của bạn có thể có bất kỳ số lượng bóng tối.
- Lưới của bạn có thể có bất kỳ số manh mối.
- Các mục ngang luôn được đọc từ trái sang phải và dọc từ trên xuống dưới.
- Mỗi chuỗi ngang hoặc dọc từ 2 đèn trở lên (giới hạn bởi bóng tối hoặc cạnh lưới) là một mục bạn phải viết một đầu mối cho. Để thuận tiện, bạn nên đánh số này theo cách thông thường (từ trái sang phải, từ trên xuống dưới) bằng cách thay thế
- Một danh sách các đầu mối có chứa mọi mục trong ô chữ của bạn, xuống và trên.
- Manh mối phải chứa ít nhất 1 và không quá 10 ký tự.
- Nếu manh mối của bạn chứa khoảng trắng, hãy chắc chắn rằng chúng rõ ràng khi bạn định dạng bài đăng của mình.
- Đoạn mã đầu trang và chân trang , mỗi đoạn 20 ký tự trở xuống.
- Chúng chạy tương ứng trước và sau một đoạn giải pháp và có thể giúp đổi tên các phần dựng sẵn dài và tương tự.
Quy trình đảm bảo đầu mối khớp với đoạn mã tương ứng của nó là:
- Ghép nối tiêu đề, đoạn trích và chân trang :
[header][snippet][footer]
. - Chạy chương trình này như một chương trình bình thường (không phụ thuộc vào các lần chạy trước) và xem xét những gì đã được in ra thiết bị xuất chuẩn.
- Nếu điều này phù hợp với đầu mối, đoạn trích là một giải pháp hợp lệ.
Để đơn giản, bạn chỉ có thể sử dụng ASCII có thể in (mã hex 20 đến 7E) trong suốt. Chỉ riêng phần đầu trang và chân trang cũng có thể chứa các tab và dòng mới.
Ghi chú bổ sung
- Đối với bất kỳ đoạn mã nào, việc chạy
[header][snippet][footer]
không nên mất hơn một phút trên máy tính hiện đại . - Bạn phải chỉ định ngôn ngữ lập trình của bạn (và phiên bản).
- Bạn không thể sử dụng bất kỳ thuật toán băm phổ biến.
- Bạn không thể sử dụng các thư viện bên ngoài.
- Mọi thứ trong mã của bạn phải mang tính xác định, bất biến thời gian và không cần kết nối mạng.
#
và_
có thể xảy ra trong đoạn trích (hoặc bất cứ nơi nào khác).- Bạn có thể tiết lộ một số ký tự trong ô chữ như COTO đã làm . Họ vẫn tính là đèn. Những tên cướp không bắt buộc phải sử dụng chúng, chúng chỉ là những gợi ý hay.
Thí dụ
Một ví dụ đơn giản sử dụng Python 3. Header : p=print;t=5;
. Không có chân trang.
Lưới chưa giải quyết:
##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####
Manh mối:
ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10
Giải pháp hợp lệ:
##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####
Cướp (Người giải quyết)
Nhiệm vụ của bạn là giải các ô chữ được đăng bởi cảnh sát. Bạn phải sử dụng cùng ngôn ngữ lập trình chính xác như ô chữ được đưa ra, nhưng nếu không thì bất kỳ giải pháp nào phù hợp với tất cả các đầu mối đều hợp lệ.
Bạn không thể giải quyết các ô chữ của riêng mình và bạn chỉ có thể cố gắng trả lời từng ô chữ khác một lần.
Hãy nhớ gửi giải pháp của bạn trong câu hỏi đồng hành .
Chấm điểm
Nếu một ô chữ được giải trong vòng 72 giờ thì nó không còn hoạt động nữa. Khi một ô chữ đã tồn tại chưa được giải quyết trong 72 giờ, nó được coi là miễn dịch và người tạo có thể đăng giải pháp (bằng cách chỉnh sửa bài đăng của họ và đánh dấu nó là miễn dịch).
Cảnh sát chiến thắng là người dùng đã gửi ô chữ miễn dịch với ít bóng tối nhất ( #
). Trong trường hợp quan hệ, phiếu bầu cao nhất sẽ thắng. Các giải pháp phải được đăng để câu trả lời được chấp nhận.
Kẻ cướp chiến thắng là người dùng giải được nhiều ô chữ nhất. The break-breaker là tổng số phiếu bầu của họ trong câu hỏi đồng hành .
sha512sum <<<"
, chân trang: "|head -c10
(trong Bash).