Lăn xúc xắc
Vì vậy, tôi đã gieo xúc xắc một lúc trước và nghĩ về một thử thách.
Cho khối lập phương có một mạng được lấy từ đầu vào và một danh sách các bước di chuyển, tìm hình vuông ở phía dưới ở cuối.
Tôi sẽ sử dụng hình ảnh này cho các ví dụ ở đây.
Đầu vào
Bạn lấy một chuỗi với một danh sách các di chuyển. Chuỗi chỉ chứa các chữ cái ASCII viết hoa N, S, W và E. Chúng tương ứng với việc lăn khối lập phương một bước theo hướng đó.
Trong ảnh, một N sẽ biến mặt dưới thành 6. Trong ảnh này, North cách xa máy ảnh, Nam hướng về phía đông, Đông ở bên phải và Tây ở bên trái.
Bạn cũng nhận một chuỗi theo định dạng sau: 1P 2P 3P 4P 5P 6P, trong đó mỗi P là một vị trí từ N, S, W, E, T và B. T & B là dưới cùng và trên cùng.
Các số là mặt có số đó và chữ cái thể hiện vị trí của mặt đó. Trong trường hợp không rõ ràng, mạng sẽ luôn được sắp xếp theo số, vì vậy 1P 2P 3P 4P 5P 6P, không bao giờ là 2B 1T 3N 4S 5W 6E.
Vị trí trong ảnh là 1S 2B 3E 4W 5T 6N.
Đầu ra
Chương trình của bạn sẽ xuất ra một số đại diện cho phía dưới.
Các trường hợp thử nghiệm
(nothing), 1S 2B 3E 4W 5T 6N -> 2
N, 1S 2B 3E 4W 5T 6N -> 6
NS, 1S 2B 3E 4W 5T 6N -> 2
NWS, 1S 2B 3E 4W 5T 6N -> 2
NWSNWS, 1S 2B 3E 4W 5T 6N -> 2
NWSS, 1S 2B 3E 4W 5T 6N -> 3
NNNNNN, 1S 2B 3E 4W 5T 6N -> 5
SNWEEWS, 1N 2T 3E 4W 5B 6S, 6
SNEEWS, 1N 2T 3W 4S 5B 6E, 4
Các quy tắc khác
Bạn cũng có thể giả sử khối lập phương nằm trên một mặt phẳng vô hạn, có thể có một loại ma sát nào đó.
Các sơ hở tiêu chuẩn không được phép, mặc dù tôi không thể tìm thấy bất kỳ.
Đối với đầu vào không hợp lệ, mã của bạn có thể làm bất cứ điều gì ngoại trừ bắt đầu ngày tận thế.
Bởi vì chương trình này phải phù hợp với súc sắc của tôi, nên nó càng nhỏ càng tốt. Tôi đếm bằng byte, với một số ngoại lệ cho các ngôn ngữ như Thư mục .
(nothing) -> 2
nghĩa là không có mạng được cung cấp, hoặc nên có một mạng ở đó ở đâu đó?