Quand une bactérie se déplace, elle ne peut occuper une case où se trouve une autre bactérie.
Autrement dit, parmi les cases adjacentes à celle occupée par la bactérie, on ne considérera que les
cases libres : la probabilité d'atteindre les cases occupées sera temporairement nulle (il faudra alors
prendre temporairement en compte la nouvelle distribution de probabilités de changement de direction
induite).
Remarque : une bactérie se trouvant "encerclée" par ses congénères (i.e. toutes les cases adjacentes à
la sienne sont occupées) ne peut ni se déplacer, ni se reproduire.
2.3.2 Reproduction
Lorsqu'une bactérie se reproduit, elle meurt et est remplacée par ses deux filles. Chacune des deux
filles a un code génétique correspondant à une réplication du code génétique de la mère, suivi d'une
mutation en partie aléatoire.
Cette mutation peut prendre différentes formes : par exemple, on peut choisir aléatoirement de
doubler, diviser par deux ou laisser telle quelle, la probabilité de changement de direction la plus
élevée chez la mère.
La première des deux filles restera pour l'étape en cours sur la case qu'occupait sa mère, tandis que sa
sœur occupera une des huit cases adjacentes (choisie aléatoirement parmi celles disponibles).
3Travail à réaliser
Sans une organisation stricte ce sujet peut devenir rapidement difficile à maîtriser. Il faut notamment
veiller à pouvoir modifier simplement tous les paramètres numériques importants du programme (par
exemple en les représentant comme des constantes de classe quand c'est possible).
3.1Première phase
On commencera par concevoir l'environnement et sa représentation graphique. Il faudra
pouvoir modifier aisément la taille de l'environnement, ainsi que la périodicité et le mode de
répartition de la nourriture dans l'environnement (atomique vs en amas). On prévoira dès cette
étape une représentation des bactéries dans l'environnement (aucune modélisation préalable
des bactéries n'est nécessaire pour cela). Il faut penser dès cette étape à offrir des méthodes
permettant une mise à jour simple de l'environnement (modification du contenu des cases et
actualisation de l'affichage).
3.2Deuxième phase
On passera ensuite à la modélisation des bactéries. Ici il faudra distinguer les paramètres
propres à toute l'espèce, de ceux propres à un individu. Les paramètres propres à l'espèce
(seuil de mortalité, seuil de reproduction, etc… ) doivent pouvoir être modifiés aisément pour
permettre un réglage adéquat. Il faudra distinguer le cas de la naissance d'une bactérie ouvrant
une nouvelle colonie, du cas de la naissance d'une bactérie par reproduction. On commencera
par mettre au point le comportement de déplacement (il faudra notamment utiliser les
informations présentes dans l'environnement sur la présence de nourriture ou de bactérie dans
telle ou telle case, et mettre à jour ces informations). On passera seulement ensuite au
comportement de reproduction des bactéries.
Les colonies seront créées en une seule fois au début du programme, et leur nombre sera
choisi par l'utilisateur.