But: Implémenter des animaux abstraits capables de se déplacer aléatoirement dans leur environnement et de se diriger vers des cibles.
Concepts nécessaires: classes, constructeurs/destructeurs, surcharge d'opérateurs, héritage
Ces concepts sont expliqués dans les cours 16, 17, 18 & 19Fichiers nécessaires : partie2.zip
L'archive fournie pour cette étape contient donc une nouvelle version du fichier CMakeLists.txt permettant de compiler le matériel de cette partie. Elle contient aussi :
Vous travaillerez pour cette étape dans le répertoire partie2/.
Comme pour l'étape précédente, le prototypage des méthodes et la déclaration des attributs se trouveront dans un fichier avec l'extension .hpp tandis que leurs définitions se trouveront dans un fichier avec l'extension .cpp.
Il faudra procéder de la sorte tout au long du projet.
(si vous n'optez pas pour ce choix, il faudra adapter par vous-même les fichiers de test fournis).Avant de simuler des lézards ou des scorpions, nous allons commencer par modéliser des animaux plus abstraits uniquement capables de :
Les notions que nous devrons modéliser pour parvenir à cet objectif sont donc évidemment :
Nous commencerons par modéliser les animaux au moyen d'un automate très abstrait (le ChasingAutomaton, uniquement capable de se diriger vers une cible).
L'élément le plus important sera la mise en oeuvre de l'algorithme de déplacement qui devra faire faire à vos animaux des promenades aléatoires dans leur environnement.
A cette étape vous commencerez à utiliser vos premières applications graphiques. Une classe Application.[hpp][cpp] est fournie; elle servira de base à tous vos tests de simulation graphiques.
Voici, pour résumer, l'architecture à laquelle vous devrez aboutir au terme de cette étape :
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 à vos attributs. Vous fournirez aussi systématiquement les destructeurs.
Les descriptions qui vous sont suggérées ci-dessous sont minimales. Il s'agit d'une première ébauche que nous serons amenés à affiner au fur et à mesure que le projet progressera. Libre à vous également d'y ajouter par la suite les méthodes et attributs supplémentaires qui vous semblent nécessaires.
Les volets (modules) à mettre en place pour finaliser cette étape sont les suivants :
Au terme de cette étape vous disposerez d'un environnement de simulation où vous pourrez ajouter des animaux. Ces derniers s'y promeneront au hasard, et si une cible entre dans leur champ de vision, ils s'y dirigeront :
← le champ de vision est visualisé en clair ici | |
[Video : déplacement aléatoire d'un animal avec champ de vision et cible] |