Artificial Life Platform; enables you to write competiting AIs
Find a file
2011-11-27 02:34:28 +01:00
.gitignore gitignore 2011-11-26 19:41:27 +01:00
agent.cc Introduce sun energy (on-tick gain) 2011-11-27 02:34:28 +01:00
agent.h Track agent energy 2011-11-27 02:32:59 +01:00
connection.cc connection::thread_loop(): Break on zero reads 2011-11-27 02:33:24 +01:00
connection.h Track agent energy 2011-11-27 02:32:59 +01:00
main.cc Ensure unicate agent IDs 2011-11-27 02:24:04 +01:00
main.h Maintain and broadcast current tick id 2011-11-26 23:31:28 +01:00
Makefile Connection communication in separate thread 2011-11-27 01:24:52 +01:00
map.cc map::agent_startpos(): Introduce, abstract out from main loop 2011-11-27 00:38:31 +01:00
map.h map::agent_startpos(): Introduce, abstract out from main loop 2011-11-27 00:38:31 +01:00
README move_dir: Restrict to {-1,0,1} 2011-11-27 02:22:14 +01:00
world.h Introduce sun energy (on-tick gain) 2011-11-27 02:34:28 +01:00

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 are supported:

	tick <ticknum>
	around <chars>
		<chars> describe tiles, clockwise from top,
		in the immediate vicinity of the 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}