Oui bien sûr, les sources sont à côté du prog :
http://flightoficarus.free.fr/Segregati ... es.0.5.zip
http://flightoficarus.free.fr/Segregati ... es.0.7.zip
C'est du VB.NET 9, ce qui devrait le rendre assez lisible au niveau de l'algorithme.
Ca se compile soit avec
Visual Basic Express 2008 (gratuit), soit avec
SharpDevelop 3 (open source et gratuit).
Pour les classes principales, on a une fenêtre "Main" qui possède un objet de type "Simulation" (dont la structure est la même que le fichier XML de paramétrage.)
Au chargement d'une simulation, on remplit un tableau à 2 dimensions d'objets "Individu"
Quand on clique sur le bouton de simulation, on lance un Timer qui a chaque tick récupère les coordonnées demandant à être bougés via la méthode Simulatoin.RunStep puis lance la méthode Simulation.MovePoints qui pour chaque individu mécontent va tenter de le déplacer. Si aucun déplacement n'a pu être effectué, on considère que le système est arrivé à l'équilibre.
Bon je suis pas très content de la façon dont ca s'articule, il faudrait que je revoie ca. A la limite prendre plutôt les sources de la 0.5 qui sont plus carrées sur ce plan là.
Au point de vue graphique on a un objet PictureBox (le fond blanc de la fenêtre) qui a chaque demande de rafraichissement utilise la méthode Simulation.Paint qui a son tour va demander à chaque Individu de se dessiner.
Du point de vue de l'algorithme de simulation, les méthodes importantes sont :
Simulation.Init
Simulation.RunStep
Simulation.MovePoints
Simulation.Move
Individu.IsTolerable
Je vais essayer de refaire un tour sur les sources pour les organiser un commenter un minimum parce que c'est un peu le boxon par endroit.