Đây là một hội đồng kết thúc của Settlers of Catan:
Lý lịch:
Các con đường (các thanh dài) và các khu định cư (và thành phố) được hiển thị bởi các túp lều nhỏ. Chúng tôi mã hóa vị trí của các mảnh này bằng cách sử dụng sơ đồ sau: Từ đỉnh, chúng tôi có một hàng ngang và các cạnh ngang nơi có thể đặt đường. Sau đó, chúng tôi có một cột chỉ các con đường, và vv. Sử dụng R cho Red, O cho Orange và B cho Blue và _ không có gì, bảng hình sẽ được mã hóa thành:
________RR_R_
__R_
__RR_R_RRR_____R_
B___R
_B_________B__OO_OOR_
B__B_R
BB_BBB_____B____RR_R_
OBB_O
OO__BB_BB__OOO_OO
O_O_
_O_OOO_O_____
Một bảng như thế này sẽ là chuỗi đầu vào của bạn. Bất kỳ chữ cái nào [A-Z]
cũng có thể chỉ ra màu của người chơi, nhưng sẽ có tối đa bốn màu (bao gồm cả trống). Các bảng khác được đảm bảo là hợp lệ theo các quy tắc của Người định cư, có nghĩa là:
- Mỗi màu sẽ có tối đa hai mạng lưới đường tiếp giáp nhau, có thể hoặc không thể bị phá vỡ bởi các khu định cư / thành phố khác (các tòa nhà trên đỉnh). Xem độ lún màu cam phá vỡ con đường màu đỏ ở phía bên phải của hình ảnh mẫu.
- Mỗi mạng lưới đường được đảm bảo có ít nhất một khu định cư.
- Tất cả các khu định cư và thành phố được đảm bảo ít nhất hai cạnh so với khu định cư / thành phố khác gần nhất (của bạn hoặc cách khác)
- Một người chơi chỉ có thể có 15 đường trên bảng trò chơi.
- Đối với những người đam mê Catan: không có sự phân biệt giữa các khu định cư và thành phố cho mục đích của vấn đề này, vì vậy tôi không phân biệt trong chuỗi đầu vào.
Tất cả điều này là dành cho đặc điểm kỹ thuật của chuỗi "đầu vào".
Con đường dài nhất:
Trong Settlers, người chơi có được hai điểm chiến thắng vì có "con đường dài nhất". Điều này được xác định là: Đường đơn tiếp giáp dài nhất (tính theo đường) từ điểm bắt đầu đến điểm kết thúc, không bị phá vỡ bởi một khu định cư của đối thủ hoặc thành phố . Chu kỳ là ổn, miễn là bạn có thể theo dõi đường dẫn từ một điểm bắt đầu cụ thể đến một điểm kết thúc cụ thể. Vì vậy, một vòng gồm 6 con đường cộng với một con đường rẽ nhánh là chiều dài 7, nhưng một con đường có hai nhánh rẽ vào vòng 6 con đường ở hai phía đối diện vẫn chỉ có giá trị 7.
Trong bản đồ ví dụ, con đường Đỏ ở phía bên phải chỉ có giá trị 4, bởi vì anh ta bị cắt bởi một khu định cư Orange ở phía bên phải của bảng (đó là lý do tại sao các khu định cư được bao gồm). Blue có đường dài 13 và Orange có đường dài 12. Đường trên cùng của Red chỉ có giá trị 7, vì nó không kết nối với hai đường duy nhất bên cạnh.
Đầu ra:
Tất cả những người chơi có một con đường có độ dài dài nhất (có thể nhiều hơn một nếu có mối quan hệ), theo sau là khoảng trắng và / hoặc số vạch giới hạn dưới cơ sở trong khoảng 10 của con đường đó.
Vì vậy, đầu ra cho bảng ví dụ sẽ là:
B 13
Báo cáo vấn đề:
Bạn có thể viết chương trình hoặc hàm , nhận bảng đầu vào thông qua STDIN hoặc làm đối số chuỗi cho hàm của bạn, trả về đầu ra được mô tả ở trên dưới dạng chuỗi hoặc in ra STDOUT (hoặc thay thế gần nhất). Bạn có thể tùy ý bao gồm một dòng mới duy nhất trong đầu ra.
Đây là mã golf , chương trình chiến thắng ngắn nhất. Tất nhiên, sơ hở bị cấm .
From the top, we have a row horizontal vertices and edges where a road can be placed. Then we have a column of only roads, and so forth.
Tôi mất vài phút để tìm hiểu điều này có nghĩa là gì. Bạn nên giải thích rõ hơn rằng các hàng ngang cũng bao gồm các khu định cư và địa điểm định cư.