mirror of
https://github.com/brmlab/brmlife.git
synced 2025-08-02 18:03:37 +02:00
Artificial Life Platform; enables you to write competiting AIs
.gitignore | ||
agent.cc | ||
agent.h | ||
connection.cc | ||
connection.h | ||
main.cc | ||
main.h | ||
Makefile | ||
map.cc | ||
map.h | ||
README | ||
world.h |
Artificial Life Platform ======================== Client-server protocol: The time is quantized in ticks. In each tick, the server sends sensor input to the agent. Until the next tick, the client may supply actions to take to the server. Both server input and client output follow the same format: cmd1 <par1> <par2>... cmd2 <par1> <par2>... ... <empty line> I.e. a sequence of lines terminated by an empty line. Each line starts with a single word (command name), plus some command-specific parameters. Note that newlines are CRLF ("\r\n"), not just LF ("\n")! The following inputs (in no particular order) are supported: tick <ticknum> BUMP if received, the agent's move failed (or attack of non-existent agent etc.) DEAD if received, the agent is dead! energy <points> number of agent's energy points; disregard in case of dead agents visual <desc> <desc>... <desc> describe tiles, clockwise from top, in the immediate vicinity of the agent <desc> format is two-character, <type><agent> <type>: . for ground <agent>: - no agent a dead agent A alive agent The following outputs are supported: move_dir <x> <y> <x> and <y> are integer offsets relative to the current position; may be just {-1,0,1} attack_dir <x> <y> <x> and <y> are integer offsets relative to the current position; may be just {-1,0,1}