Giới thiệu
Nine Mens's Morris (còn được gọi là Mills) là một trò chơi dành cho hai người chơi được chơi trên bảng sau (hình ảnh được lấy từ trang Wikipedia được liên kết):
Mỗi người chơi có 9 người, màu đen và trắng. Các quy tắc cụ thể không quan trọng đối với thử thách này, nhưng hãy xem trang Wikipedia nếu bạn quan tâm.
Các thách thức
Đưa ra một lưới làm đầu vào, đại diện cho một bảng mạch nhất định, đầu ra tổng số máy nghiền m
với 0<=m<=8
.
Ba người đàn ông cùng màu tạo thành một cối xay khi họ ở trong một hàng thẳng các điểm được kết nối. b2
để f2
không phải là một nhà máy kể từ khi những người đàn ông của màu sắc khác nhau. Ngoài ra d2
để d5
không tạo thành một nhà máy vì ba điểm phải được kết nối.
Bảng trong hình trên có chứa hai nhà máy chẳng hạn. Một từ f2
đến f6
và một từ e3
đến e5
.
Đầu vào
Bảng được thể hiện dưới dạng lưới 2D với 24 điểm được kết nối như thể hiện trong hình ảnh ví dụ ở trên. Ví dụ sử dụng các chữ cái a-g
cho các cột và số từ 1-7
cho các hàng, nhưng bạn có thể chọn bất kỳ định dạng đầu vào hợp lý nào miễn là nó ánh xạ 24 tọa độ duy nhất sang một trong các trạng thái sau:
- Trống
- Lấy màu đen
- Lấy màu trắng
Sự lặp lại cụ thể tùy thuộc vào bạn, bạn không bị giới hạn ở "b" hoặc "w" cho màu sắc.
Bên cạnh đó, đầu vào của bạn có thể không chứa bất kỳ thông tin bổ sung nào.
Ghi chú bổ sung
- Bạn không phải ánh xạ các điểm theo bất kỳ loại giá trị nào. Nếu bạn muốn lấy đầu vào là một mảng 2D, điều đó cũng tốt. Nhưng hãy nhớ rằng không phải tất cả các điểm trong đó đều được sử dụng và bạn phải xem xét các kết nối giữa chúng.
- Đầu vào có thể trống, trong trường hợp đó bạn phải xuất không (bảng trống -> không có nhà máy).
- Vì mỗi người chơi có 9 người, đầu vào sẽ không bao giờ chứa nhiều hơn 18 điểm.
- Bạn có thể bỏ qua các điểm emtpy trong đầu vào và do đó chỉ lấy các điểm đầu vào.
- Đầu vào có thể được đặt hàng theo bất kỳ cách nào. Bạn không thể dựa vào một thứ tự cụ thể.
- Bạn có thể cho rằng đầu vào sẽ luôn hợp lệ. Điều này có nghĩa là sẽ không có hơn 9 người đàn ông của mỗi màu và mỗi điểm sẽ là duy nhất.
Quy tắc
- Làm rõ định dạng đầu vào bạn sử dụng trong giải pháp của bạn. Cung cấp một ví dụ chạy chương trình của bạn được khuyến khích mạnh mẽ.
- Chức năng hoặc chương trình đầy đủ cho phép.
- Quy tắc mặc định cho đầu vào / đầu ra.
- Tiêu chuẩn áp dụng.
- Đây là môn đánh gôn , vì vậy, số byte thấp nhất sẽ thắng. Tiebreaker là trình trước đó.
Các trường hợp thử nghiệm
Định dạng đầu vào ở đây là danh sách các bộ dữ liệu có tọa độ như trong ví dụ trên là phần tử đầu tiên và trạng thái của phần tử thứ hai điểm. Một điểm được lấy bởi màu trắng được đánh dấu là "w" và một điểm được lấy bởi màu đen là "b". Tất cả các điểm khác bị bỏ lại và trống rỗng.
[("a4", "w"), ("b2", "b"), ("b4", "b"), ("c4", "b"), ("d1", "w") , ("d2", "w"), ("e3", "w"), ("e4", "w"), ("e5", "w"), ("f2", "b") , ("f4", "b"), ("f6", "b"), ("g4", "w")] -> 2 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b4", "b"), ("c4", "b") , ("d3", "w"), ("d2", "w"), ("d1", "w")] -> 3 [] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", w")] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", b")] -> 1 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b2", "b"), ("b4", "b") , ("b6", "b"), ("c3", "b"), ("c4", "b"), ("c5", "b"), ("e3", "w") , ("e4", "w"), ("e5", "w"), ("f2", "w"), ("f4", "w"), ("f6", "w") , ("g1", "w"), ("g4", "w"), ("g7", "w")] -> 8
Chúc mừng mã hóa!
d3
và d5
không được kết nối. Quy tắc nói : Three men of the same color form a mill when they are in a straight row of connected points.
. Tôi đã thêm một số ví dụ trong phần này tho để làm cho nó rõ ràng, cảm ơn vì nhận xét!