Đây là chủ đề của Cảnh sát. Chủ đề của bọn cướp ở đây .
Lý lịch
Boggle là một trò chơi bảng trong đó người chơi phải tìm các từ tiếng Anh trên bảng chữ cái ngẫu nhiên 4 x 4. Các từ có thể được xây dựng bằng cách chọn các ô liền kề liên tiếp trên bảng. ("Liền kề" có nghĩa là liền kề theo chiều ngang, chiều dọc hoặc đường chéo.) Ngoài ra, cùng một ô không thể được sử dụng nhiều lần trong một từ.
Sau đây là một bảng ví dụ:
I L A W
B N G E
I U A O
A S R L
Trên tàu này, BINGO
, ORANGE
và WEARS
là những từ hợp lệ, nhưng SURGE
và RUSSIA
không:
SURGE
: Không có cặp liền kề trên bảng cóRG
.RUSSIA
:S
không thể được sử dụng hai lần.
Đã sửa đổi Boggle là phiên bản sửa đổi của Boggle, với các quy tắc sau:
- Kích thước bảng là
m
-by-n
, trong đóm
vàn
có thể là bất kỳ số nguyên dương nào. - Mỗi ô có thể chứa bất kỳ một byte nào trong khoảng từ 0 đến 255.
- Một ô có thể được sử dụng nhiều lần, nhưng không hai lần liên tiếp.
Sử dụng bảng ví dụ ở trên, ngoài BINGO
, ORANGE
và WEARS
, LANGUAGE
trở thành một chuỗi hợp lệ (vì G
được sử dụng hai lần, nhưng không phải hai lần liên tiếp) nhưng RUSSIA
vẫn không (do SS
cặp).
Đây là một ví dụ khác sử dụng một đoạn mã. Chuỗi from itertools import*\n
có thể được tìm thấy trên bảng sau, nhưng không from itertoosl import*
hoặc from itertools import *
:
f i ' ' s
r t m l
e o o p
\n * t r
Lưu ý rằng bạn cần hai o
giây để khớp với oo
chuỗi.
Thử thách của Cop
Viết một chương trình đầy đủ bằng ngôn ngữ bạn chọn đáp ứng các quy tắc sau:
- Chương trình sẽ in một cái gì đó phù hợp qua nhiều lần chạy.
- Chương trình sẽ kết thúc sau khoảng 5 giây.
- Chương trình có thể không có bất kỳ đầu vào.
- Cả chương trình và đầu ra phải có ít nhất 2 byte.
- Bất cứ điều gì liên quan đến hàm băm, PRNG hoặc mật mã đều không được phép.
Sau đó, bố trí chương trình của bạn và xuất thành hai bảng boggle sửa đổi riêng biệt . Mỗi bảng có thể là một hình vuông. Lưu ý rằng các bảng 1-by-N và 2-by-N có thể đặt ra những thách thức đặc biệt cho cả cảnh sát và tên cướp. Nếu bạn muốn một số ô trên bảng không sử dụng được (để thêm hạn chế), bạn có thể chọn một số byte vô dụng và lấp đầy các lỗ với chúng.
Ví dụ: nếu bạn muốn lưới 2x2 chỉ có chuyển động ngang / dọc, bạn có thể thực hiện việc này thay thế:
a b
c d
-----------
X a X
c X b
X d X
Trong bài gửi của bạn, chỉ định ngôn ngữ bạn đã sử dụng, độ dài của mã nguồn và đầu ra và hai bảng boggle. Lưu ý rằng mã ngắn hơn và / hoặc đầu ra dài hơn được phép cho kẻ cướp , vì vậy bạn có thể chọn cung cấp một số chỗ cho số byte (nghĩa là chỉ định mã dài hơn và / hoặc đầu ra ngắn hơn giải pháp thực tế của bạn).
Nếu bảng của bạn chứa một số ký tự không thể in được, bạn có thể chỉ định bảng dưới dạng giá trị byte thay thế.
Sau một tuần cảnh sát được đăng, nó có thể được đánh dấu an toàn bởi người đăng nếu nó không bị bẻ khóa cho đến lúc đó. Cảnh sát vẫn mở cho bọn cướp cho đến khi nó thực sự được đánh dấu an toàn. Một cảnh sát an toàn không thể bị bẻ khóa, và người đăng sẽ tiết lộ giải pháp dự định.
Bạn sẽ muốn làm xáo trộn các bảng càng nhiều càng tốt, vì thách thức của tên cướp là phá vỡ trình của bạn bằng cách tìm mã và đầu ra của nó trên bảng. Nếu bạn muốn nhồi nhét một mã dài vào một bảng nhỏ, câu trả lời cho thử thách Modgle gốc được sửa đổi có thể đưa ra một số hiểu biết.
Chấm điểm cho cảnh sát
Vì thật khó để nói rằng một bảng lớn hơn hay nhỏ hơn khó bị bẻ khóa hơn, mỗi lần gửi cảnh sát an toàn được tính là một điểm 1. Người dùng có số điểm cao nhất sẽ thắng. Đó là khuyến khích tham gia với các ngôn ngữ và cách tiếp cận sáng tạo khác nhau.
Sao chép ví dụ & định dạng
# Japt, code 9 bytes, output 20 bytes
Code board: 2 rows, 2 columns
`l
íÏ
As byte values:
96 108
237 207
Output board: 3 rows, 3 columns
175
120
643
Kịch bản xác minh Boggle đã sửa đổi
Tất cả các tập lệnh dưới đây có một ví dụ đầu vào với nó.
Tập lệnh cho chuỗi ký tự (mã / đầu ra) & boggle. Điều này không hỗ trợ chuỗi nhiều dòng. Định dạng đầu vào là
- một dòng chuỗi (mã hoặc đầu ra), theo sau là
- bảng boggle thô.
Script cho chuỗi ký tự với giá trị byte. Sử dụng điều này nếu chuỗi mục tiêu có thể in được nhưng có một hoặc nhiều dòng mới trong đó. Định dạng đầu vào là
- số lượng dòng cho chuỗi,
- chuỗi thô (có thể là nhiều dòng), sau đó
- bảng boggle như các giá trị byte.
Tập lệnh cho chuỗi giá trị byte & boggle. Sử dụng điều này nếu chuỗi mục tiêu chứa một hoặc nhiều ký tự không thể in được. Định dạng đầu vào là
- một dòng chuỗi (mã hoặc đầu ra) dưới dạng giá trị byte, theo sau là
- bảng boggle như các giá trị byte.
[]+.
, nhưng tôi nghĩ nó có thể là không thể. Có ai quan tâm để thử không?