🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_311cvmn_311.py
Version 1.0.0
Date de création 09/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler graphiquement la croissance, la maturation et la dispersion d’une population végétale sur une grille 2D.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script génère une simulation animée de type « automate cellulaire ». Il modélise le cycle de vie de plantes (naissance, croissance vers l’état adulte, reproduction par dispersion de graines et mort naturelle) sur une grille de taille définie, avec un rendu visuel dynamique utilisant Matplotlib.
📌 Problème résolu
Il permet de visualiser et d’étudier de manière simplifiée la dynamique spatiale d’une population végétale et l’impact de paramètres biologiques (taux de reproduction, mortalité, temps de maturation) sur l’occupation du territoire.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Interface graphique (Matplotlib Window)
📦 Dépendances / Librairies
numpy : Gestion de la grille (matrices) et calculs aléatoires.
matplotlib : Visualisation et moteur d’animation.
📥 ENTRÉES (INPUTS)
# Nom Type Obligatoire Description Exemple
1 size int ❌ Non Taille de la grille (côté) 80
2 density float ❌ Non Densité initiale de graines (0.0 à 1.0) 0.02
📤 SORTIES (OUTPUTS)
# Nom Type Description Exemple
1 ani FuncAnimation Objet d’animation Matplotlib (Visualisation live)
🧱 STRUCTURE DU SCRIPT
script_311cvmn_311.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CLASSE FloraSimulation
│ ├── __init__() → Initialise la grille et les paramètres de probabilité.
│ ├── update() → Gère la logique de cycle de vie par frame.
│ ├── disperse_seeds() → Gère la reproduction sur les cases voisines.
│ └── run() → Configure la figure et lance l’animation.
└── 📌 MAIN (Initialisation sim et appel de run())
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
update(frame, img) frame, image object tuple Calcule le nouvel état de la grille pour chaque étape de l’animation.
disperse_seeds(r, c, grid) int, int, array None Tente de placer une jeune pousse dans le voisinage de Moore de la cellule (r, c).
run() Aucun None Génère la fenêtre graphique et boucle l’animation.
🔄 LOGIQUE / ALGORITHME
Étapes de traitement par cycle :
Vieillissement : Chaque plante présente voit son compteur d’âge augmenter de 1.
Maturation : Si une « Jeune pousse » (1) atteint maturity_age, elle devient « Adulte » (2).
Reproduction : Les adultes tentent de disperser une graine dans une case adjacente libre selon prob_seed.
Mortalité : Chaque plante a une probabilité prob_death de disparaître (retour à l’état vide 0).
Rendu : La grille est mise à jour visuellement.
🚨 GESTION DES ERREURS
Performance : Le script utilise une double boucle for pour l’itération des cellules, ce qui peut ralentir la simulation sur des grilles très larges (> 200×200).
Dépendance Backend : Nécessite un backend graphique fonctionnel (ex: TkAgg) pour afficher la fenêtre Matplotlib.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Une graine ne peut être plantée que sur une case vide (0).
Règle 2 : Seules les plantes adultes (2) peuvent se reproduire.
Règle 3 : La grille est torique (modulo size), les graines peuvent passer d’un bord à l’autre.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Cas nominal Paramètres par défaut Expansion de la colonie verte ⬜ À tester
2 Densité nulle density=0 Grille reste vide (blanche) ⬜ À tester
3 Mortalité max prob_death=1.0 Disparition immédiate de toute flore ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement standard
Bash
python script_311cvmn_311.py
💻 Modification des paramètres (dans le code)
Python
# Pour une simulation plus dense et plus rapide
sim = FloraSimulation(size=100, density=0.1)
sim.maturity_age = 2
sim.run()



Avis
Il n’y a pas encore d’avis.