Tôi muốn thử một hình thức mới của mã golf ở đây. Tương tự như phần thưởng, không phải tất cả các phần của thử thách phải được hoàn thành, nhưng mỗi câu trả lời phải thực hiện một tập hợp con có kích thước nhất định (và có một cốt lõi mà mọi câu trả lời phải thực hiện). Vì vậy, bên cạnh việc chơi golf, thử thách này còn liên quan đến việc lựa chọn một bộ tính năng kết hợp tốt với nhau.
Những quy định
Kingdom Builder là một trò chơi cờ, được chơi trên lưới hex (đỉnh nhọn). Bảng được tạo thành từ bốn góc phần tư (ngẫu nhiên), mỗi ô có các ô lục giác 10 x10 (vì vậy một bảng đầy đủ sẽ là 20x20). Đối với mục đích của thử thách này, mỗi ô hex chứa nước ( W
), núi ( M
) một thị trấn ( T
), lâu đài ( C
) hoặc trống ( .
). Vì vậy, một góc phần tư có thể trông giống như
. . W . . . . . . .
. M W W . . . . . .
. M . . W . . . T .
M M . W . . . . . .
. . M . W W . . . .
. . . . . W W W W W
. T . . . . . . . .
. . W . . C . . . .
. . W W . . . . M .
. . . . . . . M M .
Hàng thứ hai sẽ luôn được bù sang phải từ hàng đầu tiên. Người chơi 1
để 4
có thể đặt tối đa 40 khu định cư từng vào ô trống (sau đây một số nguyên tắc mà chúng tôi sẽ bỏ qua cho thách thức này). Một bảng có thể vào cuối của trò chơi là như sau:
3 3 W . . . 4 . 4 . . 2 W . 4 . . 4 . 4
3 M W W . 1 1 . . 4 2 W . 3 C 4 4 . . 4
3 M 2 2 W 1 1 1 T 3 2 W 4 3 . 1 4 . 4 .
M M . W 2 2 . . . 2 2 W 3 . 1 1 1 . . .
. 4 M . W W 2 2 2 2 W W 3 . 1 4 . T . .
. . . . . W W W W W . 3 C 1 . . 2 2 2 2
. T 1 1 1 1 . . 2 . . 4 . . . 2 2 M M M
4 . W 4 . C 4 4 . . . . . . 2 M M M M M
. 4 W W . . . 4 M . . W . W . 2 2 2 M M
. . . . . . . M M . . W W . . . . 2 M .
. . . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 . 1
M 3 3 . . . . . . . . 4 . T 2 . 2 4 1 .
M M . C . 4 . 4 . . . . . 1 2 4 2 1 1 .
M . . 1 . 4 . . . . M M 1 2 . . 2 1 . .
. . . W 1 1 4 1 1 . . . 1 2 . . 2 W W W
. . 1 1 W 1 T . 1 1 1 1 T . . 2 W . 4 .
. 1 1 W . 3 3 . . . . . . . . 2 W 4 C 3
C 1 3 3 3 . 3 . 4 . 4 . 4 . . 2 W 1 1 M
4 3 3 4 . M 4 3 . . . . . . . 2 W . . .
. . . 4 . M M 3 . . 4 4 . 4 . 2 W W . .
Chúng tôi sẽ gắn nhãn các góc phần tư như
1 2
3 4
Nhiệm vụ của bạn sẽ là ghi bàn như vậy. Có một điểm cốt lõi luôn được sử dụng và 8 điểm tùy chọn, 3 trong số đó được chọn cho mỗi trò chơi. † Trong phần tiếp theo, tôi sẽ mô tả tất cả 9 điểm và sử dụng các thiết lập ở trên là một ví dụ cho bao nhiêu điểm mỗi người chơi sẽ nhận được.
Có 10 điểm trong trò chơi thực tế, nhưng tôi sẽ bỏ qua hai điểm vì không ai muốn đánh gôn chúng.
Điểm số cốt lõi. Một người chơi được 3 điểm cho mỗi C
astle họ có một giải quyết bên cạnh. Điểm ví dụ: 18, 0, 15, 12.
Các điểm số tùy chọn.
Một người chơi được 1 điểm cho mỗi hàng ngang mà họ có ít nhất một lần giải quyết.
Điểm ví dụ: 14, 20, 12, 16.
Đối với mỗi người chơi, hãy tìm hàng ngang mà họ hầu hết các khu định cư của họ (chọn bất kỳ trong trường hợp hòa). Một người chơi được 2 điểm cho mỗi lần giải quyết trên hàng đó.
Điểm ví dụ: 14 (hàng 16), 8 (hàng 4, 5 hoặc 6), 28 (hàng 11), 10 (hàng 1).
Một người chơi được 1 điểm cho mỗi khu vực được xây dựng bên cạnh
W
ater.Điểm ví dụ: 13, 21, 10, 5.
Một người chơi được 1 điểm cho mỗi lần định cư bên cạnh một
M
cú.Điểm ví dụ: 4, 12, 8, 4.
Đếm các khu định cư của mỗi người chơi trong mỗi góc phần tư. Trên mỗi góc phần tư, những người chơi có số lượng khu định cư lớn nhất nhận được 12 điểm mỗi người, những người chơi có số lượng khu định cư lớn thứ hai nhận được 6 điểm .
Điểm ví dụ: 18 (6 + 0 + 6 + 6), 36 (12 + 12 + 0 + 12), 12 (0 + 0 + 12 + 0), 18 (12 + 6 + 0 + 0).
Đối với mỗi người chơi xác định góc phần tư trong đó họ có số lượng khu định cư ít nhất. Một người chơi được 3 điểm cho mỗi lần giải quyết trong góc phần tư đó.
Điểm ví dụ: 18 (Quadrant 2), 0 (Quadrant 3), 15 (Quadrant 1 hoặc 2), 27 (Quadrant 3).
Một người chơi được 1 điểm cho mỗi nhóm khu định cư được kết nối.
Điểm ví dụ: 7, 5, 6, 29.
Một người chơi được 1 điểm cho mỗi 2 khu định cư trong nhóm các khu định cư được kết nối lớn nhất của người chơi.
Điểm ví dụ: 4, 10, 8, 2.
Các thách thức
Như trong trò chơi, bạn sẽ chọn 3 điểm số tùy chọn và ghi một bảng cho trước dựa trên điểm số chính và ba điểm số đó. Mã của bạn sẽ tạo ra một danh sách 4 điểm. Có một hạn chế đối với lựa chọn: Tôi đã nhóm điểm thành 3 nhóm và bạn phải thực hiện một trong mỗi nhóm:
- Thực hiện một trong 1 và 2 .
- Thực hiện một trong 3, 4, 5 và 6 .
- Thực hiện một trong 7 và 8 .
Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN, đối số dòng lệnh, dấu nhắc hoặc tham số hàm. Bạn có thể trả lại kết quả hoặc in nó cho STDOUT.
Bạn có thể chọn bất kỳ định dạng danh sách / chuỗi 1D hoặc 2D thuận tiện cho đầu vào. Bạn không thể sử dụng biểu đồ với thông tin liên tục đầy đủ. Dưới đây là một số đọc tốt trên lưới hex nếu bạn cần nguồn cảm hứng.
Đầu ra của bạn cũng có thể ở bất kỳ định dạng chuỗi hoặc danh sách thuận tiện, rõ ràng.
Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Giả định thêm
Bạn có thể cho rằng ...
- ... Mỗi người chơi có ít nhất 1 khu định cư và không có hơn 40 khu định cư của mỗi người chơi.
- ... Mỗi góc phần tư chứa một thị trấn và hai lâu đài, hoặc hai thị trấn và một lâu đài.
- ... Các thị trấn và lâu đài cách nhau đủ xa, đến nỗi không có khu định cư nào có thể liền kề với hai trong số chúng.
Các trường hợp thử nghiệm
Vẫn sử dụng bảng trên, đây là các điểm riêng cho tất cả các lựa chọn có thể có của cơ chế tính điểm:
Chosen Scores Total Player Scores
1 3 7 52 46 43 62
1 3 8 49 51 45 35
1 4 7 43 37 41 61
1 4 8 40 42 43 34
1 5 7 57 61 45 75
1 5 8 54 66 47 48
1 6 7 57 25 48 84
1 6 8 54 30 50 57
2 3 7 52 34 59 56
2 3 8 49 39 61 29
2 4 7 43 25 57 55
2 4 8 40 30 59 28
2 5 7 57 49 61 69
2 5 8 54 54 63 42
2 6 7 57 13 64 78
2 6 8 54 18 66 51