Pour l'instant, il n'y a aucune autre documentation que les commentaires du code, les articles de Linux Magazine et cette page ! La version actuelle a été testée uniquement sous Linux, avec le jdk 1.4.2 de SUN. Comme les fichiers qui décrivent les terrains sont écrits en XML, le fonctionnement avec une version antérieure du jdk demanderait au minimum l'installation d'un parser XML externe. Notez bien que le programme est assez bourré de bogues...
La version 0.0 disponible actuellement est plus que rudimentaire. Elle se
présente sous d'un fichier jar qu'on lance classiquement avec la commande
java -jar pathfinding.jar.
Avant de lancer l'application, il faut aussi avoir téléchargé et décompressé les descriptions de terrains (cf au dessous).
Une fois l'application démarrée, la première chose à faire est d'ouvrir un
terrain par le menu File (entrée Open). Les fichiers xml de terrain sont très
simples et faciles à modifier, mais pour l'instant, vous devrez deviner
comment ! Une fois le fichier choisi, le terrain s'affiche. On peut zoomer et
dézoomer grâce aux touches + et -. La touche
g permet d'afficher la grille sous-jacente au terrain. Les
touches de direction permettent de bouger le terrain.
On peut ensuite faire toutes sortes de réglages sur le modèle de terrain et sur l'algorithme utilisé :
Terrain permet de choisir le modèle de voisinage, ou
si vous préférez, de déplacement des unités (4 ou 8 directions, avec prise en
compte éventuelle de la distance parcourue).Path finder permet de régler l'algorithme,
c'est-à-dire de choisir entre Dijkstra et A* et entre les différentes
implémentations possibles de la liste Ouverts et de la liste
Fermés (les noms indiqués correspondent au nom des classes dans le
code source). On peut aussi s'amuser avec l'heuristique utilisée par A*.Display permet de régler l'affichage et se limite
pour l'instant à l'activation (ou non) d'une représentation animée de
l'évolution des contenus de Ouverts et de Fermés.Une fois les réglagles effectués, il suffit de cliquer sur le point de
départ et sur le point d'arrivée pour voir le chemin se tracer, après un petit
calcul. La barre d'état affiche une estimation du temps de calcul, le coût du
chemin trouvé, le nombre de cases dans les listes Ouverts et
Fermés. De plus, la représentation de la carte comporte la liste
Ouverts (les cercles bleus) et la liste Fermés (les cercles
verts). La touche o active (ou désactive) l'affiche de la liste
Ouverts, la touche c jouant le même rôle pour la liste
Fermés. La touche f propose un affichage sous forme de
disques pleins, alors que la touche e permet de revenir à
l'affichage de départ.
Pour faciliter la comparaison de l'effet des différents choix, on peut
redemander le calcul d'un chemin grâce à l'entrée Recalculate
Path du menu Path finder.
J'insiste sur le fait que le programme contient des bogues. Le plus important est lié au fait que le calcul du chemin se fait dans un thread dédié, ce qui provoque parfois un affichage étrange (dans l'animation) ou des plantages liés à des accès parallèles à une structure partagée entre l'affichage et les algorithmes. De plus, je me suis focalisé sur les algorithmes sans tenir compte de l'occupation mémoire qui est en fait assez importante. Toute collaboration est la bienvenue !