← Trở về Nộp bot

BOT PROTOCOL / JSON LINES v1

Bot chạy liên tục trong một subprocess. Mỗi request: đọc một dòng JSON UTF-8 trên stdin, trả đúng một dòng JSON trên stdout rồi flush. Chỉ ghi debug vào stderr. Mỗi submission chọn một game; server kiểm tra action theo game đó.

Robot Battle

Hai bot được hỏi cùng trạng thái. Tọa độ x sang phải, y đi xuống. Move dùng 4 hướng; attack trúng đối thủ ở ô kề sau di chuyển.

{"protocol":1,"game_id":"robot_battle","game":"robot_battle","player":"A","turn":0,"rules":{"map_size":12,"initial_hp":100,"damage":20,"max_turns":100},"you":{"x":1,"y":6,"hp":100},"enemy":{"x":10,"y":6,"hp":100}}
{"type":"move","direction":"right"}
{"type":"attack"}
{"type":"wait"}

OTT v2

A = P1, B = P2. Chỉ bot đến lượt được hỏi. Bàn 9×9, row/col từ 0; row 0 nằm dưới. Board là ma trận ô null hoặc {"id":"...","owner":"A","type":"rock"}. Ba type: rock, paper, scissors. A đi trước và nhắm i9 (8,8); B nhắm a1 (0,0).

Observation gồm protocol, game_id, game, player, turn, round, round_turn, current_player, rules, board_size, board, goals, counts, scores, last_move, legal_actions. turn là sequence toàn trận; round_turn là số nước đã đi trong ván. legal_actions chứa các action hợp lệ; bot có thể chọn từ danh sách hoặc tự tính. Server luôn xác thực lại action.

{"action":"move","from":{"row":1,"col":3},"to":{"row":2,"col":4}}

Mỗi nước di chuyển một ô theo 8 hướng. Búa ăn Kéo, Kéo ăn Bao, Bao ăn Búa; không vào ô quân cùng đội/cùng loại hoặc quân mạnh hơn. Không có wait/attack. Đến góc đích hoặc loại hết một loại quân địch: thắng ván. Hết giới hạn nước hoặc không còn nước hợp lệ: hòa ván. Chơi đủ số ván rồi so điểm thắng.

Giới hạn runner

Lượt đầu mỗi bot: 3 giây; các lượt sau: 1 giây. Stdout tối đa 4 KiB/dòng và 256 KiB/trận; stderr 64 KiB/trận. Crash, timeout, JSON/action sai: xử thua cả trận. Bot được giữ nguyên process qua các ván.

Subprocess không phải sandbox. Chỉ dùng code tin cậy trong nhóm trên local/LAN riêng.

Bot mẫu

Đang tải registry…