Giới thiệu
Trò chơi diễn ra trong một thế giới nhỏ với những thị trấn khác nhau. Những người cai trị các thị trấn ghét nhau và muốn thống trị thế giới. Người dân được chia thành hai nhóm, chiến binh và những người thấp kém. Tuy nhiên, những người thấp kém có thể nâng lên thành chiến binh. Bạn là người cai trị ba trong số những thị trấn này.
Trò chơi
Khi trò chơi bắt đầu, bạn cai trị ba thị trấn. Ở mỗi thị trấn, có 100 người. Bạn phải chia họ thành hiệp sĩ và những người thấp kém.
Sau đó, trò chơi thực sự bắt đầu, đó là theo lượt. Một ngã rẽ trông như thế này: "Produce" knights
=> execute command of first town
=> execute command of next town
(lặp lại cho tất cả các thị trấn) => try a rebellion
.
- Mỗi lượt, chương trình của bạn sẽ được gọi cho mỗi thị trấn thuộc về bạn . Bạn có thể tấn công một thị trấn , hỗ trợ một thị trấn hoặc đơn giản là chờ đợi . Những hành động này sẽ được thực hiện tuần tự, không đồng thời.
- Mỗi lượt thứ ba, bạn nhận được một hiệp sĩ trên 2 người thấp (23 người thấp = = 11 hiệp sĩ). Số lượng lowborns giữ nguyên.
- Các hiệp sĩ trong một thị trấn có tiền thưởng phòng thủ là 1,2. Nếu bạn bị tấn công, các hiệp sĩ của bạn sẽ được nhân với số này (ví dụ bạn có
78 knights
, bạn sẽ có93 knights
trong cuộc tấn công). Sau cuộc tấn công, các hiệp sĩ phụ sẽ bị loại bỏ (nếu82 knights
sống sót, bạn vẫn sẽ có78 knights
). - Trong một cuộc tấn công, mỗi hiệp sĩ giết chết kẻ thù trước khi chết. Ví dụ:
30 knights
tấn công100 knights
(không có tiền thưởng phòng thủ) => 70 hiệp sĩ sống sót. - Bạn có thể chiếm một thị trấn bằng cách giết tất cả các hiệp sĩ bên trong nó . Tất cả những người thấp kém thuộc về bạn bây giờ và các hiệp sĩ còn sống sót của bạn đang đóng quân trong thị trấn. Ở vòng tiếp theo, bạn có thể thống trị thị trấn này ngoài tất cả các thị trấn khác của bạn .
- Sau khi một thị trấn bị chiếm, nó sẽ không có phần thưởng quốc phòng cho 2 lượt đầy đủ (vì các cổng bị phá vỡ). Đến lượt thứ ba, các cổng sẽ được sửa chữa.
- Để ngăn chặn những người thấp kém nổi loạn, bạn cần ít nhất một nửa hiệp sĩ cũng như có những người thấp kém (23 người thấp kém trong một thị trấn cần ít nhất 12 hiệp sĩ trong cùng thị trấn). Nếu không, những kẻ thấp hèn sẽ giết chết tất cả các hiệp sĩ và thị trấn trở thành "trung lập" (không có người lãnh đạo, được chỉ định bởi PlayerId
-1
). - Các thị trấn trung lập sẽ "sản xuất" các hiệp sĩ, nhưng sẽ không tấn công cũng như không hỗ trợ bất kỳ thị trấn nào khác.
Cú pháp
Bộ điều khiển cung cấp cho bạn đầu vào thông qua các đối số lệnh, chương trình của bạn phải xuất qua thiết bị xuất chuẩn.
Đầu ra (chuẩn bị)
Trước khi trò chơi bắt đầu, bộ điều khiển sẽ gọi bạn gửi mà không cần đối số. Điều này có nghĩa là bạn phải phân phối 100 người của bạn (cho mỗi thị trấn) thành hiệp sĩ và những người thấp kém. Bạn cần đầu ra KnightCount KnightCount KnightCount
, ví dụ 95 80 95
.
Đầu vào
Round;YourPlayerId;YourTownId;PlayerId_TownId_knights_lowborns;PlayerId_TownId_knights_lowborns;...
Trên vòng đầu tiên, đây sẽ là một cái gì đó như thế
1;2;2;0_0_100_0;1_1_50_50;2_2_80_20
. Ở đây, bạn thấy đó là vòng đầu tiên, bạn là người chơi 2 ở thị trấn 2. Bạn có 80 hiệp sĩ và 20 người thấp.
Sau đó trong trò chơi, nó có thể là một cái gì đó như 20;2;1;0_0_100_0;2_1_30_50;2_2_40_20
. Bạn vẫn là người chơi 2 (điều này không bao giờ thay đổi), nhưng bạn đã chiếm được thị trấn 1 (nơi bạn đang kiểm soát ngay bây giờ).
Đầu ra
A TownId NumberOfKnights
hoặc S TownId NumberOfKnights
hoặc W
(chờ).
Ví dụ: A 2 100
(tấn công thị trấn 2 với 100 hiệp sĩ) hoặc S 3 2
(hỗ trợ thị trấn 3 với 2 hiệp sĩ).
Quy tắc
- Bots không nên được viết để đánh bại hoặc hỗ trợ các bot cụ thể khác.
- Viết vào các tập tin được cho phép. Vui lòng viết thư cho " yourubmissionname .txt", thư mục sẽ được xóa trước khi trò chơi bắt đầu. Các nguồn lực bên ngoài khác không được phép.
- Nội dung gửi của bạn có 1 giây để phản hồi (mỗi thị trấn).
- Cung cấp các lệnh để biên dịch và chạy đệ trình của bạn.
Chiến thắng
Người chiến thắng là người có nhiều thị trấn nhất sau 100 vòng. Nếu một người chơi chiếm được tất cả các thị trấn, trò chơi dừng lại và anh ta thắng. Nếu nhiều người chơi có cùng số lượng thị trấn, số lượng hiệp sĩ sẽ được tính, sau đó là số lượng người thấp.
Bộ điều khiển
Bạn có thể tìm thấy bộ điều khiển trên github. Nó cũng chứa 2 mẫu, được viết bằng Java. Mở nó trong Eclipse, đặt các bot đã biên dịch vào thư mục gốc và thêm một lớp vào chương trình điều khiển (giống như các ví dụ mẫu).
Các kết quả
Để có kết quả cuối cùng, tôi đã chạy 10 trận. Đây là mức trung bình:
Thị trấn người chơi 1. Người giải phóng 37,5 2. Sehtimian 8.2 3. Siêu sản phẩm 5.4 4. Ngủ 1.4 5. Frankenstein 1.2 6. Bơ 0,8 (nhiều hiệp sĩ) 7. TheKing 0.8 (ít hiệp sĩ) 8. Xuất hành 0,6 9. Rùa 0,5 (nhiều hiệp sĩ) 10. AttackOn3 0,5 (ít hiệp sĩ) 11. Dân chủ 0,3 12. Tính toán 0,2 13. Nhà cách mạng 0,1
Bạn có thể đọc một trò chơi mẫu ở đây: trò chơi mẫu trên github
A
hỗ trợ một thị trấn khácB
, số hiệp sĩ đã cho chỉ đơn giản là được chuyển từA
đếnB
, sau đó họ được kiểm soát bởi chủ sở hữuB
, đúng không?