Các mục hiện đang đóng cửa. Bất kỳ mục hoặc chỉnh sửa mới sẽ không được tính trong lần chạy cuối cùng.
Tham gia trò chuyện!
Thử thách
Cố gắng lấp đầy khung vẽ với càng nhiều sơn càng tốt. Hãy cẩn thận với các bot khác có thể vẽ lên công việc khó khăn của bạn!
Lưu ý: Trong mô tả thử thách này, sơn có nghĩa là thay đổi màu của hình vuông trên lưới và không được tô màu có nghĩa là hình vuông trên lưới có màu 0 và không được quy cho bất kỳ bot nào.
Đầu vào
Chức năng của bạn sẽ được đưa ra bốn đối số: chính bạn, lưới, vị trí của tất cả các bot trên lưới và thông tin trò chơi.
Riêng tôi
Đây là mảng 1D biểu thị màu sắc và vị trí của bạn trên lưới: [id, xpos, ypos]
.
Góc trên cùng bên trái của lưới là vị trí (0, 0)
. Vị trí (1,0)
nằm bên phải của vị trí đó và vị trí(0,1)
bên dưới
Id của bạn là một số nguyên đồng nghĩa với màu của bạn (xem bên dưới để tìm hiểu cách id của bạn ảnh hưởng đến cách bạn vẽ lưới). ID của bạn là duy nhất cho bot của bạn.
Lưới
Đây là mảng 2D chứa các số nguyên cho bạn biết mỗi ô có màu gì. Nếu số lượng của một ô lưới là 0
, điều đó có nghĩa là ô đó không được tô màu. Nếu số lượng ô lưới là một số nguyên x
, điều này có nghĩa là ô đã được bot vẽ bằng ID x
.
Để có được màu của lưới tại vị trí (x, y)
, sử dụng mảng như vậy : grid[x][y]
.
Bots
Đây là một mảng chứa thông tin về vị trí của các bot. Mỗi phần tử của mảng bot là một mảng mô tả từng bot và trông giống như : [id, xpos, ypos]
, id
ID của bot, xpos
là vị trí x của bot vàypos
là vị trí y của bot.
Mảng này bao gồm vị trí và id của bot của bạn. Bot bị loại bỏ sẽ không được bao gồm trong mảng này.
Thông tin trò chơi
Đây là một mảng chứa thông tin về trò chơi hiện tại và trông giống như: [roundNum, maxRounds]
đâu roundNum
là số vòng hiện tại (1 chỉ số) và maxRounds
là số vòng trong trò chơi hiện tại.
Đầu ra
Đầu ra phải là một chuỗi được trả về bởi hàm của bạn. Đây là lệnh di chuyển.
Lệnh di chuyển xác định bước tiếp theo của bạn. Các lệnh có sẵn là:
up
down
left
right
wait
Bất cứ khi nào bạn di chuyển, bạn vẽ hình vuông bạn di chuyển đến. (xem bên dưới để biết thêm thông tin)
Có wait
nghĩa là bạn không di chuyển. (nhưng bạn vẽ hình vuông mà bạn ở lại)
Nếu bạn cố gắng di chuyển ra ngoài lưới, lệnh của bạn sẽ bị bỏ qua và bạn sẽ ở cùng một chỗ.
Vẽ lưới
Bất cứ khi nào bạn di chuyển đến một hình vuông, bạn vẽ nó, nhưng có những quy tắc xác định màu sắc của hình vuông đó sẽ là gì.
Nếu hình vuông không được tô màu (0), thì bạn chỉ cần sơn nó cùng màu với ID của riêng bạn. Tuy nhiên, nếu hình vuông đã được vẽ trước đó (khác không) thì màu kết quả của hình vuông sẽ được tìm thấy theo mã JavaScript sau:
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
Công thức này được thực hiện để cho phép một bot di chuyển qua màu của chính nó mà không cần sơn lại.
Loại bỏ
Nếu sau vòng 5, bạn có một hoặc ít hình vuông được vẽ (số ô vuông trên lưới có cùng màu với bạn) thì bạn sẽ bị loại. Điều này có nghĩa là bạn sẽ không còn trong trò chơi và sẽ tự động thua.
Quy tắc
- Mã của bạn phải có chức năng của loại
function(myself, grid, bots, gameInfo) {
// Code here
return move;
}
- Lưới sẽ là một hình vuông có chiều dài cạnh
- Để ngăn các bot cụ thể không nhắm mục tiêu, ID của các bot sẽ được chọn ngẫu nhiên.
- Khi hai bot chiếm cùng một không gian, màu của không gian đó sẽ không được tô màu.
- Phong trào là theo lượt tức là trong một vòng, tất cả các chương trình được cung cấp với nhau
grid
,bots
vàgameInfo
lập luận
- Bạn có thể tạo tối đa ba bot
- Bots có thể làm việc cùng nhau nhưng không được giao tiếp với nhau và sẽ không biết ID của nhau. Các chiến thắng sẽ được trao riêng chứ không phải là một đội.
- Bạn không được tạo một bot cố ý nhắm mục tiêu vào một bot được chọn trước. Tuy nhiên, bạn có thể nhắm mục tiêu các chiến thuật của một lớp bot nói chung.
- Bot của bạn có thể lưu trữ dữ liệu trong
window.localStorage
. Mỗi bot phải sử dụng đối tượng dữ liệu riêng của họ. Nếu một bot bị phát hiện đang đọc dữ liệu của bot khác (vô tình hoặc cố ý), nó sẽ bị loại cho đến khi vấn đề được giải quyết. - Nếu bot của bạn sử dụng số ngẫu nhiên, vui lòng sử dụng
Math.random()
Bộ điều khiển
Bộ điều khiển có thể được tìm thấy ở đây:
https://gist.github.com/beta-decay/10f026b15c3babd63c004db1f937eb14
Hoặc bạn có thể chạy nó ở đây: https://beta-decay.github.io/art_attack
Ghi chú: Tôi sẽ khuyên bạn nên thực hiện bất kỳ thử nghiệm ngoại tuyến nào (tải xuống bộ điều khiển từ ý chính) vì trang web có thể thay đổi bất cứ lúc nào.
Khi tất cả các bot đã được thêm vào, tôi sẽ chạy 10.000 trò chơi với bộ điều khiển bị loại bỏ không có giao diện đồ họa. Bạn có thể chạy nó ở đây: https://beta-decay.github.io/art_attack/fast
Chiến thắng
Người chơi đã lấp đầy hầu hết các khung hình sẽ thắng trò chơi (một trò chơi là 2000 vòng). Trong trường hợp bốc thăm, tất cả người chơi rút thăm đều thắng.
Người chơi nào thắng nhiều nhất trong số 10.000 trò chơi sẽ chiến thắng thử thách.
10.000 trò chơi được ước tính sẽ được chạy vào thứ Hai tới (2018-08-27 lúc 23:00 UTC + 1).
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
công thức, cho dù bot có may mắn hay không và có thể vượt qua các đối thủ lớn (hoặc bị tô vẽ). Ngoài ra, hãy tính đến các troll / thợ săn có thể tự tay tiêu diệt một bot mà họ chọn. Dù bằng cách nào, nó sẽ trung bình trên 10000 trò chơi.
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
sang tiếng Anh không?