les thinkbots:
-------------

il faut:
-python
-des libs opengl qui marchent
-netcat

QUICKSTART:
----------

lancer le serveur:
$ ./serv.py

cliquer sur "create world" puis "create serv"

lancer le client:
$ ./cli_dummy.py <numero de team>

lancer le viewer (necessite netcat pour l'instant):
$ echo "HELLO 0" | nc localhost 6969 | ./eyetest.exe

cliquer sur "start world" dans le serveur

SPECS:
-----

protocole entre le client et le serveur :
le serveur ecoute sur le port 6969 (ou 6970 si celui
ci est deja pris, ou 6971... etc)

voici un exemple de dialogue CLI/SRV:

SRV> HELLO please introduce yourself
CLI> HELLO 1		ce qui veut dire qu'il veut controler la team 1
SRV> WAIT!		ca restera comme ca jusqu'a ce qu'on fasse "start"
SRV> WORLD radius=10 things=9 yours=5 turn=4
			ce qui veut dire que le monde fait 10 de rayon,
			que le joueur voit 9 objets, et qu'il y en a 5 a lui.
			cela indique aussi que le 4e tour de jeu commence.
SRV> THING name=charles key=135160216 team=1 x=5 y=1 z=3 hits=1 life=-1 move=1 scan=1 lifeleft=1
SRV> THING name=alice key=135158880 team=1 x=5 y=1 z=1 hits=1 life=-1 move=1 scan=1 lifeleft=1
			le nom est arbitraire, la clef est un int, pour les autres caracs voir + haut
... jusqu'a la fin de toutes les THING (il y en a 9 dans ce cas la)
CLI> COUNT 2		ce qui veut dire : 2 ordres
CLI> ORDER alice move 1 move 2
			alice va essayer de bouger dans la direction 1, puis la direction 2
CLI> ORDER charles move 2 attack 3
			charles va attaquer dans la direction 3 et bouger dans la 2
			(les attaques se font toujours AVANT les mouvements)
SRV> WAIT!		on attend les ordres de tout le monde ...
puis ca reprend a "WORLD..."

en se connectant en tant que client numero 0, on peut voir toute la carte, mais
on ne peut pas donner d'ordres.

BUGS:
----
pour l'instant n'importe qui peut donner des ordres a n'importe qui
les thingbots peuvent sortir du terrain : ca va etre corrige d'ici peu

API:
----
une API est en cours de developpement. le principe est de disposer
d'un objet "connexion" avec des methodes "nextturn" et "order". "nextturn"
envoie tous les ordres en attente et recupere la nouvelle vision du monde,
et "order" met un ordre en attente. les protos :
world nextturn ();
void order (bot,action,param);