mirror of
https://github.com/brmlab/brmlife.git
synced 2025-08-02 18:03:37 +02:00
48 lines
1.3 KiB
Text
48 lines
1.3 KiB
Text
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}
|