Prologin (2001)

Cette année (2001) j'ai remporté le concours Prologin.
Je vous invite à visiter le site officiel pour connaitre le sujet.

J'ai gagné un ordinateur :
Ainsi que des bouquins (GTK+, Apache, PHP, Java, Programmation Objet)

Vous pouvez télécharger l'archive source de mon programme : prologin.tar.gz
Vous pouvez voir le source de mon programme ici : prolo.c
Le serveur est disponible sur SourceForge.

prologin.jpg (102ko)
Voici l'interface graphique dont on disposait

Et voici la documentation que j'ai rendu pour mon programme :

Comportement des AnaKronoX (par ordre de priorite decroissante)

1) S'il ne me reste aucun r4d2, chaque AnaKronoX se defend en pulsant autour de lui sur un rayon de 1 et en se deplacant a intervalles reguliers (au cas ou un r4d2 ennemi soit cache pile sur lui)
Avec cette technique de defense, les AnaKronoX sont tres durs a prendre.

2) S'il ne me reste peu de r4d2 (valeur exacte reglee par une constante) on protege au maximum un des r4d2 (tout le monde le pulse)
Ca accelere mes r4d2 et ceci a 2 avantages :
- si je suis en train de gagner je termine rapidement de convertir les AnaKronoX restants
- si je perds ca me permet d'essayer de contre attaquer...

3) Si un r4d2 ennemi est dans la capacite de me capturer (a moins de 1 d'1 de mes AnaKronoX), tout les AnaKronoX s'entraide pour eliminer se r4d2 en le pulsant tres serre.

4) Si un r4d2 ennemi passe assez proche d'un de mes AnaKronoX, tous les AnaKronoX s'entraident pour faire une defense de zone assez large autour de l'AnaKronoX cible (pour gener la progression, eventuellement tuer le r4d2 fautif).

5) Si je vois un r4d2 ennemi sur la carte, de temps en temps (frequence reglee par une constante), je le pulse assez serre pour essayer de le tuer.
Si je le 'rate' pcq il a bouge, ca suffit souvent a le ralentir pour le tuer au tour suivant en reajustant le tir.

6) Enfin s'il n'y a rien de prioritaire a faire, ils scannent : ils pulsent en tournant pour balayer la carte, en evitant de scanner en dehors de l'ecran.


Comportement des r4d2 (plus simple)

Chaque fois qu'un AnaKronoX qui ne m'appartient pas est detecte, il est sauvegarde dans une table.
Lorsque qu'un r4d2 n'a pas de de cible (un AnaKronoX a convertir) on recherche dans la table des AnaKronoX un objectif inexploite et proche a lui attribuer.


Mon source est tres documente, je vous invite a le consulter pour + d'informations :)