🟦 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_beq8538vef7c6g8g_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur Gemini (Basé sur le code fourni)
Objectif principal Simuler et visualiser graphiquement la dynamique proie-prédateur (Cerfs vs Loups) sur une grille 2D avec gestion des ressources (herbe).
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script exécute une simulation multi-agents où des Cerfs (proies) et des Loups (prédateurs) interagissent sur une grille. L’herbe repousse au fil du temps, les cerfs la mangent pour survivre, et les loups chassent les cerfs. Le script génère une animation en temps réel montrant l’évolution des populations et de la végétation.
📌 Problème résolu
Il modélise de manière simplifiée un système biologique complexe pour observer les cycles de vie, de reproduction et d’extinction selon des paramètres environnementaux variables (modèle de type Lotka-Volterra spatialisé).
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows, Linux, MacOS)
Mode d’exécution Graphique (Interface Matplotlib)
📦 Dépendances / Librairies
numpy : Gestion de la grille (matrice d’herbe) et calculs aléatoires.
matplotlib : Visualisation et moteur d’animation (animation.FuncAnimation).
📥 ENTRÉES (INPUTS)
Le script utilise des constantes globales en guise de configuration :
# Nom Type Description Valeur par défaut
1 GRID_SIZE int Taille de la grille carrée 25
2 INITIAL_DEER int Nombre de cerfs au départ 15
3 INITIAL_WOLVES int Nombre de loups au départ 5
4 GRASS_REGROW_RATE float Vitesse de repousse de l’herbe 0.05
5 REPRODUCTION_THRESHOLD int Seuil d’énergie pour procréer 15
📤 SORTIES (OUTPUTS)
Animation Visuelle : Une fenêtre interactive affichant la grille, les points marrons (cerfs) et les triangles rouges (loups).
Statistiques en temps réel : Affichage dans le titre du graphique du nombre d’individus par espèce et du numéro du tour.
🧱 STRUCTURE DU SCRIPT
Plaintext
onizuka_beq8538vef7c6g8g_333.py
│
├── 📌 CONFIGURATION (Constantes)
├── 📌 CLASSES (POO)
│ ├── Entity (Classe mère)
│ ├── Deer (Hérite d’Entity)
│ └── Wolf (Hérite d’Entity)
├── 📌 INITIALISATION (Grille & Populations)
└── 📌 MOTEUR D’ANIMATION
└── update(frame) → Logique de cycle de vie & Rendu
🔧 Détail des classes/fonctions
Fonction/Méthode Paramètres Retour Rôle
Entity.move() Aucun None Déplacement aléatoire adjacent sur la grille (torique).
Deer.eat(map) grass_map None Consomme l’herbe sur la case actuelle et gagne de l’énergie.
Wolf.hunt(deers) list[Deer] bool Tente de manger un cerf sur la même case.
update(frame) frame None Gère un tour complet : repousse, mouvements, repas, mort, naissance.
🔄 LOGIQUE / ALGORITHME
Phase Végétale : L’herbe sur chaque case de la grille augmente de GRASS_REGROW_RATE.
Phase Proie (Cerf) :
Se déplace ➔ Mange ➔ Perd de l’énergie.
Si énergie < 0 ➔ Mort. Si énergie > Seuil ➔ Division en deux (reproduction).
Phase Prédateur (Loup) :
Se déplace ➔ Chasse.
Si chasse réussie ➔ Gain d’énergie fort.
Si chasse échouée ➔ Malus de fatigue.
Si énergie > Seuil+10 ➔ Division en deux (reproduction).
Phase Rendu : Mise à jour de l’affichage imshow (herbe) et scatter (animaux).
🚨 GESTION DES ERREURS
Population éteinte : Le script continue de tourner même si une espèce disparaît (affichage de listes vides).
Limites de grille : Utilisation de l’opérateur modulo (% GRID_SIZE) pour permettre aux entités de sortir d’un côté et réapparaître de l’autre (monde torique).
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Un cerf consomme toute l’herbe d’une case (remise à 0) dès qu’elle dépasse le seuil de 0.5.
Règle 2 : Les loups sont plus résistants au départ (15 énergie) mais perdent de l’énergie à chaque mouvement s’ils ne capturent rien.
Règle 3 : La reproduction consomme la moitié de l’énergie du parent pour la donner à l’enfant.
🧪 TESTS ATTENDUS
Stabilité : Vérifier si l’écosystème survit plus de 100 tours sans extinction totale.
Surpopulation : Tester avec GRASS_REGROW_RATE = 1.0 pour voir si les cerfs envahissent la grille.
Famine : Tester avec INITIAL_DEER = 0 pour confirmer que les loups meurent tous rapidement.
📝 EXEMPLE D’UTILISATION
▶️ Lancement direct
Bash
python onizuka_beq8538vef7c6g8g_333.py



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