Petr Baudis
be10580643
Report suspicious events (out-of-sync agents, unexpectedly disconnected agents)
2011-12-26 21:47:03 +01:00
Petr Baudis
a9884cf827
connection::actions(): Fix negotiation termination by empty line
2011-12-26 20:27:29 +01:00
Petr Baudis
407daec822
connection::actions(): Do not require tick prefix during negotiation
2011-12-26 20:11:19 +01:00
Petr Baudis
cf5586c35f
connection::senses(): Enlarge buffer size, pheromones can get very long
2011-12-23 19:23:16 +01:00
Petr Baudis
9baf771807
Incomp. Proto. Change: Maintain sync by prefixing client commands by tick id
2011-12-22 15:28:05 +01:00
Petr Baudis
091708f577
Incomp. Proto. Change: attack_dir gets <force> parameter
2011-12-22 00:12:45 +01:00
Petr Baudis
177d41cf60
Incomp. Proto. Change: breeding_key -> breeding_key1, breeding_key2
2011-12-17 00:01:45 +01:00
Petr Baudis
23f2fce7ff
Support for breeding
...
One party initiates the breeding; the other party exerts most of the
energy if its breeding key matches. It is that party's responsibility to
set up the newborn agent's connection (but the father can pass it an
arbitrary message). Newborn is spawned immediately but can be
renegotiated on first connect.
2011-12-08 03:14:57 +01:00
Petr Baudis
b693b5d6f4
connection::actions(): agent& -> agent*, more natural agent_id handling
2011-12-08 03:02:08 +01:00
Petr Baudis
8ae6051e97
Support reconnecting to agents
...
Agents do not die immediately on disconnect anymore. Instead, agent_id
is sent at birth and can be sent during negotiation to attach to a
disconnected agent.
2011-12-08 02:21:56 +01:00
Petr Baudis
96208e93ba
Pheromones: Merge tile and agent info in pheromones output
2011-12-08 00:10:09 +01:00
Petr Baudis
a821e72661
Introduce pheromones
2011-12-07 23:54:03 +01:00
Petr Baudis
61cc3ef015
connection::senses(): Clean up visual sending
2011-12-07 23:28:11 +01:00
Petr Baudis
56979634bf
connection::thread_loop(): Detect read errors and end of file reliably
2011-11-30 01:52:04 +01:00
Petr Baudis
f161c02210
connection::cancel(): Enable cancelling ongoing loop
2011-11-30 01:51:45 +01:00
Petr Baudis
1fcd4e45b7
connection::senses(): Split to many smaller printfs
2011-11-30 01:40:33 +01:00
Petr Baudis
39b61175c1
connection::thread_loop(): Try different way to append to in_buf
...
We have seen mysterious crashes.
2011-11-29 23:48:53 +01:00
Petr Baudis
0a9b9f8840
visual: Enlarge neighborhood
2011-11-29 22:26:00 +01:00
Petr Baudis
12724c016d
connection::thread_loop(): Try harder to catch dead sockets
2011-11-29 19:46:33 +01:00
Petr Baudis
04fc7b4b7a
connection::actions(): Fix command masking
2011-11-29 19:32:08 +01:00
Petr Baudis
529c401457
connection::actions(): Do not permit multiple actions of the same kind per tick
2011-11-27 07:37:30 +01:00
Petr Baudis
b80ccfdffd
Attack, defense rates
2011-11-27 05:18:52 +01:00
Petr Baudis
2907cb6791
Connection: Add 'move' attribute to the negotiation phase
2011-11-27 05:07:01 +01:00
Petr Baudis
9cf99e0bcd
Connection: Add negotiation phase
2011-11-27 05:06:46 +01:00
Petr Baudis
85e143fd11
connection::bump(): Fix double locking
2011-11-27 05:05:57 +01:00
Petr Baudis
a36deeb1db
Connection: Abstract out buf_incomplete() macro
2011-11-27 05:05:43 +01:00
Petr Baudis
0c29808836
Action attack_dir(): Implement, trivially random now
2011-11-27 04:10:53 +01:00
Petr Baudis
5efaafe983
Sense around -> visual
2011-11-27 03:44:14 +01:00
Petr Baudis
f0a603352f
Sense around: Extended format describing agents explicitly
2011-11-27 03:43:45 +01:00
Petr Baudis
e22c57c97f
connnection::actions(): Take agent&
2011-11-27 03:25:16 +01:00
Petr Baudis
415475cd26
connnection::senses(): Sanitize interface, take just agent&
2011-11-27 03:24:40 +01:00
Petr Baudis
9dcb3c543a
Connection: Use CRLF for output too
2011-11-27 03:16:47 +01:00
Petr Baudis
b969e91bd1
around: Show 8-neighborhood
2011-11-27 03:16:11 +01:00
Petr Baudis
77e555706b
Send BUMP if move failed
2011-11-27 02:59:28 +01:00
Petr Baudis
64ea015a06
Support for agent death
2011-11-27 02:48:28 +01:00
Petr Baudis
f6221436a4
connection::thread_loop(): Do not write() if we have nothing to write
2011-11-27 02:40:57 +01:00
Petr Baudis
158ab85715
connection::thread_loop(): Break on zero reads
2011-11-27 02:33:24 +01:00
Petr Baudis
93882f79b9
Track agent energy
...
Base energy, move energy
2011-11-27 02:32:59 +01:00
Petr Baudis
d44c5f5b10
move_dir: Restrict to {-1,0,1}
2011-11-27 02:22:14 +01:00
Petr Baudis
de6a4d656f
Support for command input
...
For starters, 'move_dir x y' command is supported.
2011-11-27 02:14:57 +01:00
Petr Baudis
92940b6054
Connection communication in separate thread
2011-11-27 01:24:52 +01:00
Petr Baudis
6a3d9b2e4a
Destroy agent on disconnect; another agent can connect later
2011-11-26 23:59:31 +01:00
Petr Baudis
978a080656
~connection(): Close file descriptor
2011-11-26 23:43:52 +01:00
Petr Baudis
1ed67c81b6
Maintain and broadcast current tick id
2011-11-26 23:31:28 +01:00
Petr Baudis
6b3a51139a
Support for (read-only) TCP connection agent communication
2011-11-26 23:24:06 +01:00