-
Notifications
You must be signed in to change notification settings - Fork 0
Projet
M. Fourmillion, passionné par les fourmis et travaillant dans un musée, souhaite développer une application de simulation de colonie de fourmis en 3D. Cette application permettra la création et la gestion d'une colonie de fourmis avec des paramètres configurables tels que l'ajout de fourmis, de galeries, de nourriture, etc. Notre programme a été soigneusement conçu pour être accessible à un large public, aussi bien aux non-professionnels qu'aux experts.
L'objectif de ce projet est de concevoir et développer une application en Python capable de simuler une colonie de fourmis en 3D. La simulation devrait offrir un environnement réaliste et interactif. Les fourmis devront présenter un comportement autonome grâce à des algorithmes d'intelligence artificielle (IA) et respecter les rôles traditionnels au sein de la colonie (ouvrières, reine, etc.).
Le programme vise à aider l'utilisateur à comprendre le comportement des fourmis afin qu'il puisse agir en conséquence. Comprendre le comportement des fourmis permettra à l'utilisateur d'ajuster les paramètres de leur environnement et de savoir ce qu'il ne faut pas faire pour assurer la survie des fourmis étudiées.
Le PMV pour notre projet comprend :
- Placer une fourmi dans un carré rempli, représentant l'environnement initial.
- Implémenter une horloge pour suivre le passage du temps.
- Chaque jour, les fourmis ont une chance de mourir et de collecter de la nourriture.
- Permettre aux fourmis de se déplacer et de creuser automatiquement, mais sans tenir compte de la gravité.
- Absence d'une interface utilisateur graphique (GUI). Le code devrait être lancé avec des paramètres.
- Permettre au client d'interagir avec le nombre de fourmis et la quantité de nourriture disponible.
L'application devrait présenter une simulation 3D de la colonie de fourmis avec une interface utilisateur graphique.
Les utilisateurs devraient pouvoir ajouter de nouvelles fourmis à la colonie. Il y aura une variété de fourmis, chacune répondant aux besoins spécifiques de la reine. Un type particulier de fourmi, dicté par la hiérarchie, émergera lorsque la larve atteindra la maturité.
Les utilisateurs devraient pouvoir créer des galeries et distribuer de la nourriture dans l'environnement.
Les fourmis devraient être équipées d'algorithmes d'IA pour leur permettre de se déplacer, de chercher de la nourriture, d'interagir avec l'environnement et de remplir leurs rôles spécifiques. Nous avons choisi d'implémenter une IA de base dans notre simulation pour améliorer l'équité. En fournissant aux fourmis une IA simple, elles acquièrent la capacité de prendre des décisions individuelles, favorisant un comportement plus nuancé et varié par rapport à un algorithme uniforme appliqué à chaque fourmi. L'objectif de cette approche est d'isoler le comportement de chaque fourmi dans le programme, permettant une simulation plus réaliste et dynamique où chaque fourmi peut réagir de manière autonome à son environnement.
Les fourmis devraient respecter leurs rôles au sein de la colonie (ouvrières, reine, etc.) avec des comportements spécifiques à chaque rôle. Par exemple, les ouvrières sont dédiées à des tâches telles que la construction, la collecte de nourriture et d'autres activités essentielles. La reine, quant à elle, assure la reproduction et la survie à long terme de la colonie. La spécialisation des rôles améliore l'efficacité et garantit la survie prospère de la communauté dans son ensemble.
Les fourmis devraient émettre des phéromones pour communiquer entre elles et marquer des chemins. Ce système de communication chimique joue un rôle essentiel dans la cohésion et l'organisation de la colonie. En se déplaçant dans leur environnement, les fourmis libèrent des phéromones, laissant une traînée qui peut être suivie par d'autres membres. Cela permet aux autres fourmis de retrouver leur chemin vers la nourriture ou simplement de retourner au nid.
L'application devrait implémenter une horloge pour suivre le passage des jours dans la simulation.
Chaque jour, les fourmis devraient avoir une probabilité de mourir, simulant le cycle de vie naturel des fourmis.
Chaque jour, il devrait y avoir une probabilité pour que les fourmis trouvent de la nourriture.
Les utilisateurs devraient pouvoir accélérer le passage du temps pour observer l'évolution de la colonie à différentes vitesses.
Le projet sera développé en utilisant le langage de programmation Python.
Le projet suivra une méthodologie de développement agile, permettant des itérations itératives et des ajustements continus en fonction des besoins du client.
L'application doit être compatible avec les systèmes d'exploitation courants (Windows, macOS, Linux). Les bibliothèques et modules Python utilisés doivent être bien documentés.
Nous prévoyons de collaborer étroitement avec le client, en recherchant des avis d'experts pour affiner et améliorer le programme de simulation. Notre objectif est d'aider le client à développer un programme qui s'aligne parfaitement sur ses attentes, garantissant une solution personnalisée et efficace.
Cette spécification de projet définit les exigences pour une simulation de colonie de fourmis en 3D. Le PMV inclut une simulation de base avec une seule fourmi, une horloge, une gestion du temps et des interactions minimales. Le projet sera réalisé par le groupe "2TL2-6" sur une période de 7 semaines, en suivant une méthodologie agile pour plus de flexibilité
La MVP de notre projet consistera à placer une fourmi dans un carrée plein. Une horloge sera mise en place pour voir le temps qui passe et ,chaque jour, la fourmi aura une chance de mourir et de récupérer de la nourriture. La fourmi avance et creuse toute seule mais elle n'est pas envore soumise à la gravité. Le client pourra intéragir avec le nombre de fourmi et la quantité de nourriture à disposition.
bnh