Projet : étape 4
Bactéries en compétition

But:

Finaliser le comportement des bactéries à flagelle unique. Introduire de nouveaux types de bactéries entrant en compétition pour l'accès aux nutriments : des bactéries à grappin et des bactéries capables de se déplacer en groupes.

Concepts nécessaires : classes, constructeurs/destructeurs, héritage, polymorphisme.

Ces concepts sont expliqués dans les cours 16, 17, 18, 19 , 20 & 21.

Fichiers nécessaires : partie4.zip


Mise en place

L'archive fournie contient donc une nouvelle version du CMakeLists.txt permettant de compiler le matériel de cette partie. Elle contient aussi :

Description générale des classes à produire

Nous savons pour l'heure simuler au cours du temps l'évolution d'une colonie de bactéries à flagelle unique capable de se déplacer de façon basique, de consommer de la nourriture, .. et de mourir. Leur mode de déplacement reste peu naturel et peu propice à leur faire trouver des sources de nutriments et elles ne sont pas encore capables de muter et de se diviser. Cette étape du projet permettra d'y remédier.

Il s'agira ensuite de mettre nos bactéries à flagelle unique en compétition avec des bactéries dotées de facultés différentes, notamment en matière de mobilité :

Pour le second type de bactéries, la notion de groupe devra aussi être modélisée (au moyen d'une classe BacteriaGroup).

Voici, pour résumer, l'essentiel de l'architecture à laquelle vous devrez aboutir au terme de cette étape :

Modele

Procédons donc maintenant au début du codage. Dans votre programme, vous veillerez à encapsuler proprement vos classes, notamment en ne donnant pas d'accès public ou protégé à vos attributs. Vous vous préoccuperez aussi systématiquement des destructeurs.

Pour réaliser cette étape, une structure de données que vous n'avez pas encore utilisée va s'avérer utile. Il s'agit de la notion de «table associative» qui se décline en deux variantes en C++ (map ou unordered_map) et qui généralise la notion de tableau. En voici une petite présentation avec un exemple.

Modules à programmer

Cette partie nécessite la programmation des trois modules suivants :

Au terme de cette étape, vous aurez complété le modèle des bactéries à flagelle unique. Vous serez également capable d'ajouter deux nouveaux types de bactéries dans votre boîte de culture, dont voici l'exemple des bactéries à grappin  :

Les tests fournis ne vous permettront que de créer un seul nouveau type de bactéries à la fois. Il est en effet beaucoup plus facile d'observer la co-évolution des différents types de bactéries en traçant des graphiques. C'est le but de l'étape suivante. Lorsque ces outils seront en place vous pourrez faire cohabiter différents types de bactéries dans une boîte de culture.

Retour au document principal