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 4 chữ cái ngẫu nhiên. 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à
n
-by-n
, trong đó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
Viết một hàm hoặc chương trình, được đưa ra một bảng điều chỉnh Boggle B
(có kích thước bất kỳ) và một chuỗi s
, xác định nếu s
có thể được tìm thấy trên B
.
Hạn chế
Bản thân mã của bạn cũng phải phù hợp với bảng Boggle đã sửa đổi b
. Nghĩa là, bạn phải hiển thị bảng b
trong bài gửi của mình cùng với mã của bạn, để chức năng / chương trình của bạn xuất ra đúng nếu được đưa ra b
và mã của bạn là đầu vào.
Chấm điểm
Điểm của bài nộp của bạn là chiều dài của bảng nhỏ nhất b
nơi bạn có thể phù hợp với mã của mình. Các mối quan hệ bị phá vỡ bởi các quy tắc golf-code thông thường , tức là độ dài mã của bạn tính bằng byte. Bài nộp với số điểm thấp nhất (cho cả hai tiêu chí) sẽ thắng.
Ví dụ: from itertools import*\n
có số điểm là 4 (sử dụng bảng ở trên) và độ dài mã là 23 byte.
Đầu vào và đầu ra
Đối với đầu vào, bạn có thể thực hiện bất kỳ phương pháp thuận tiện cho cả B
và s
. Điều này bao gồm danh sách các ký tự và danh sách các mã, 2D hoặc dẹt hoặc bất cứ điều gì có ý nghĩa. Ngoài ra, bạn có thể tùy ý lấy kích thước bảng làm một phần của đầu vào.
Đối với đầu ra, bạn có thể chọn một trong các cách sau:
- Giá trị trung thực và giả mạo theo quy ước ngôn ngữ của bạn, hoặc
- Một giá trị được xác định trước cho đúng và sai tương ứng.
Vui lòng chỉ định phương thức nhập / xuất của bạn trong bài gửi của bạn.
+=+=
hoặc một cái gì đó tương tự. Vấn đề là ==
chức năng đầu ra ...