Đó là một mùa hè khô ráo trên thảo nguyên. Bốn nông dân trong khu vực nhận ra rằng họ có thể tạo ra thị trường trên ngô bằng cách đốt các cây trồng hàng xóm của họ. Nhưng họ cần một chiến lược để làm như vậy; đó là nơi bạn đến
Nhiệm vụ của bạn là viết một bot để nói với nông dân những gì cần đốt. Mục tiêu là kết thúc trò chơi với diện tích đất không cháy lớn nhất. Sân chơi là một lưới 32x32. Mỗi ô có thể là một trong những điều sau đây:
. - Ground
@ - A bot
# - Ash
W - Wet ground
1,2,3,4,5, or 6 - Fire
Lửa phát triển với cường độ 1 mỗi lượt. Khi nó là 3 hoặc cao hơn, nó sẽ đặt các ô bên cạnh nó (theo chiều ngang hoặc chiều dọc) bốc cháy. Sau khi lửa chạm 6, nó biến thành tro.
Trên mỗi lượt, các bot nhận dưới dạng STDIN như sau: bot bắt đầu x, bot bắt đầu y, vị trí x hiện tại của bot, vị trí hiện tại của bot và bảng, được phân tách bằng các dòng mới. Một ví dụ:
8
22
6
24
................................
................................
................................
.....................1..........
....................1#1.........
...................1#363........
....................16@1........
.....................31.........
................................
.........1.1....................
........15#62...................
........15@2....................
.........32.....................
................................
................................
................................
................................
................................
................................
................................
................................
................................
....4.1.........................
.....1#3........................
.....@3.........................
.....W..........................
................................
................................
................................
................................
................................
................................
(trong trường hợp này bạn là bot ở phía dưới bên trái).
Bạn phải xuất ba ký tự, với một dòng mới tùy chọn, thể hiện như sau:
Di chuyển - một trong L, R, U, D, or S (stay)
Hành động - một trong những B (burn), P (pour water) or X (do nothing)
Hướng - một trong L, R, U, D or S
- điều khiển ô nào bạn thực hiện hành động trên
Lửa không ảnh hưởng đến bot.
Thứ tự lần lượt như sau: Tất cả các bot di chuyển; tất cả các bot thực hiện hành động; sau đó các quy tắc môi trường xảy ra. Nếu bạn đổ nước trên mặt đất, nó sẽ ướt ( W
) trong một lượt. Lửa sẽ không lan xuống mặt đất ẩm ướt. Nếu bạn đổ nước trên mặt đất ẩm ướt, nó sẽ tiếp tục bị ướt. Nếu bạn đổ nước vào lửa, nó sẽ quay trở lại mặt đất thông thường. Bạn không thể làm bất cứ điều gì để tro.
Các vòng được chạy với 4 bot cùng một lúc. Vòng đấu kết thúc sau 50 lượt, hoặc khi một bot hết đất không cháy, tùy theo điều kiện nào đến trước. Điểm của bạn được tính bằng số lượng ô mặt đất hoặc mặt đất ướt trong ô vuông 9x9 tập trung vào nơi bot của bạn bắt đầu.
Đây là một ví dụ bot; nó chọn tất cả ba chữ cái một cách ngẫu nhiên và thường kết thúc việc đốt cháy các trường của chính nó.
RandomBurner:
#!/usr/bin/env python
import random
print random.choice('LRUDS')+random.choice('BPX')+random.choice('LRUDS')
Quy tắc:
- Không có quyền truy cập hệ thống tập tin bên ngoài thư mục của riêng bạn.
- Bạn có thể ghi vào tệp nếu bạn cần lưu trữ dữ liệu liên tục giữa các lượt, nhưng chỉ tối đa 1kb mỗi bot
- Bạn không được ghi đè lên bot của bất kỳ ai khác
- Nếu bạn xuất ra một động thái không hợp lệ, bot của bạn sẽ ngồi yên. Nếu bạn xuất một hành động không hợp lệ, bot của bạn sẽ không làm gì cả.
- Vui lòng sử dụng các ngôn ngữ phổ biến có thể chạy trên hộp OSX hoặc Linux.
Mã điều khiển có thể được tìm thấy ở đây.
Kết quả ban đầu:
Average of 15 rounds:
---------------------
81 Farmer
56 CautiousBot
42 GetOff
41 Visigoth
40 DontBurnMeBro
37 FireFighter
35 Pyro
11 Protector
Cập nhật : Đã thêm Nông dân, CautiousBot, Get Offer, FireFighter và Pyro.