Sommaire

Implémentation

Plusieurs exemples sont ici implémentés. Par leur fonctionnement, ces algorithmes sont principalement graphiques, aussi les codes présentés ici, s’ils sont génériques pour les classes de base, sont des applications graphiques Java utilisant Swing.

Le modèle MVC est volontairement non respecté, pour garder le code plus léger, et simplifier sa compréhension. Deux classes graphiques seront créées à chaque simulation :

  • une héritant de JPanel qui gère l’affichage graphique et la mise à jour de l’application.

  • une contenant le main et lançant la fenêtre principale en y ajoutant le panel précédemment créé.

1. Banc de poissons 2D

La première application est une simulation d’un banc de poissons, inspirée des boids de Reynolds, en deux dimensions.

Nous allons donc voir un ensemble de poissons, représentés sous la forme de traits, se déplacer dans un océan virtuel et éviter des zones dangereuses à l’intérieur de celui-ci (cela peut représenter des obstacles physiques ou des zones présentant des prédateurs).

Le comportement du banc sera donc uniquement obtenu par émergence.

a. Les objets du monde et les zones à éviter

Avant de coder les agents eux-mêmes, nous allons coder une première classe qui peut être utilisée à la fois pour les objets ...