🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_8nmi7uzv65upcvdb_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur refoïa jeremy
Objectif principal Simuler et visualiser l’évolution dynamique et la compétition spatiale entre deux espèces végétales (Pionnières vs Compétitives).
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script génère une simulation stochastique sur grille (automate cellulaire) où deux espèces luttent pour l’espace. Il modélise leur croissance, leur dispersion (reproduction) et leur survie sur une période de 100 jours, le tout visualisé par une animation en temps réel.
📌 Problème résolu
Il permet d’illustrer visuellement le compromis biologique « vitesse vs endurance » : les espèces pionnières colonisent vite mais meurent souvent, tandis que les compétitives s’étendent lentement mais dominent sur le long terme.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Interface Graphique (Matplotlib Animation)
📦 Dépendances / Librairies
Librairies externes (pip install)
numpy : Gestion des matrices (grille et énergie).
matplotlib : Moteur de rendu graphique et animation.
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Configuration interne : Les paramètres des espèces sont codés en dur dans le dictionnaire SPECIES_TYPES.
# Nom Type Obligatoire Description Exemple
1 GRID_SIZE int ✅ Oui Taille de la grille carrée 50
2 DAYS int ✅ Oui Nombre d’itérations de la simulation 100
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Chemin / Format Description
Visuel Fenêtre interactive Animation Matplotlib affichant l’évolution de la grille.
🧱 STRUCTURE DU SCRIPT
onizuka_8nmi7uzv65upcvdb_333.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CONSTANTES / CONFIG (GRID_SIZE, DAYS, SPECIES_TYPES)
├── 📌 CLASSES
│ └── Ecosystem → Gère la logique de la simulation
├── 📌 FONCTIONS D’ANIMATION
│ └── animate(i) → Met à jour la vue à chaque frame
└── 📌 MAIN (Lancement de l’animation)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
Ecosystem.__init__ size: int None Initialise la grille et les premières graines.
Ecosystem.update Aucun np.array Applique les règles biologiques à chaque cellule.
animate(i) i: int list Fonction de rappel pour mettre à jour l’image.
🔄 LOGIQUE / ALGORITHME
ÉTAPE 1 → Parcourir chaque cellule de la grille.
ÉTAPE 2 → Si une espèce est présente :
Croissance : Ajouter du « growth_rate » au compteur d’énergie de la cellule.
Dispersion : Si eˊnergie≥1.0, tenter de coloniser une case voisine aléatoire (selon la portée de « dispersion »).
Compétition : La colonisation ne réussit que si la case cible est vide (valeur 0).
Survie : Tirage aléatoire ; si l’espèce échoue son test de survie, la case devient vide.
ÉTAPE 3 → Mettre à jour la grille globale et rafraîchir l’affichage.
🚨 GESTION DES ERREURS
Hors-limites : Le script utilise un modulo (% self.size) pour gérer la dispersion, créant un effet « torique » (une graine sortant par la droite réapparaît à gauche).
Conflits de mise à jour : Utilisation de new_grid.copy() pour éviter que les mouvements d’une cellule n’impactent les cellules suivantes durant le même tour.
✅ CONTRAINTES & RÈGLES MÉTIER
Priorité d’occupation : Premier arrivé, premier servi. Une espèce ne peut pas en remplacer une autre déjà installée (compétition indirecte pour l’espace vide).
Modèle stochastique : La survie et la direction de dispersion sont basées sur le hasard (np.random).
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Cas nominal Paramètres par défaut Extension circulaire des populations ⬜ À tester
2 Survie = 0 survival: 0.0 Extinction immédiate de l’espèce ⬜ À tester
3 Taille grille 1×1 GRID_SIZE = 1 Simulation stable ou erreur d’index ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement direct
Bash
python onizuka_8nmi7uzv65upcvdb_333.py



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