onizuka_1d8okfdjabdejwlb_333.py

49,00 

Simuler et visualiser graphiquement la dynamique de population entre des prédateurs (loups) et des proies (cerfs) au sein d’un environnement fermé disposant de ressources renouvelables.

UGS : onizuka_1d8okfdjabdejwlb_333.py Catégorie : Étiquettes : , ,

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script onizuka_1d8okfdjabdejwlb_333.py

Version 1.0.0

Date de création 25/03/2026

Auteur / Demandeur Gemini (Généré)

Objectif principal Simuler et visualiser graphiquement la dynamique de population entre des prédateurs (loups) et des proies (cerfs) au sein d’un environnement fermé disposant de ressources renouvelables.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script exécute une simulation stochastique (aléatoire) d’un écosystème forestier. Il modélise les comportements individuels d’animaux (déplacement, alimentation, reproduction, vieillissement) et affiche en temps réel une animation de la carte ainsi qu’un graphique de l’évolution des populations.

📌 Problème résolu

Il permet d’illustrer les modèles de dynamique des populations (type Lotka-Volterra) de manière visuelle et interactive, en intégrant des facteurs biologiques concrets comme le sexe, l’énergie et la disponibilité des ressources végétales.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.8+

OS cible Tous (Windows, Linux, MacOS)

Mode d’exécution Interface Graphique (Matplotlib Animation)

📦 Dépendances / Librairies

Standard : random, enum, warnings

Externes : numpy, matplotlib

📥 ENTRÉES (INPUTS)

📂 Paramètres de la classe Ecosysteme

# Nom Type Obligatoire Description Exemple

1 largeur / hauteur int ❌ Non Dimensions de la zone de simulation 800, 600

2 nb_cerfs_init int ❌ Non Nombre de cerfs au départ 25

3 nb_loups_init int ❌ Non Nombre de loups au départ 8

4 nb_ressources_init int ❌ Non Nombre de plantes initiales 40

📤 SORTIES (OUTPUTS)

📂 Visualisation

Fenêtre Matplotlib : * Gauche : Vue spatiale 2D avec des icônes pour les cerfs (cercles), les loups (triangles) et les plantes (points verts).

Droite : Graphique linéaire temporel montrant les courbes de population.

Console : Affichage des paramètres lors du lancement.

🧱 STRUCTURE DU SCRIPT

Plaintext

onizuka_333.py

├── 📌 IMPORTS (numpy, matplotlib, etc.)

├── 📌 CLASSES DE BASE

│ ├── Sexe(Enum) → MALE, FEMELLE

│ ├── Animal → Classe mère (mouvement, âge, énergie)

│ ├── Ressource → Gestion de la nourriture végétale

├── 📌 CLASSES SPÉCIFIQUES

│ ├── Cerf(Animal) → Logique de recherche de nourriture et fuite

│ ├── Loup(Animal) → Logique de chasse et faim

├── 📌 MOTEUR DE SIMULATION

│ ├── Ecosysteme → Gestion globale, cycles (step) et historique

└── 📌 MAIN → Instanciation et lancement de simuler()

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

step() Aucun None Calcule une itération complète (mouvements, morts, naissances).

animate(frame) frame: int axes Met à jour le rendu graphique pour chaque image de l’animation.

chasser(cerfs) list Cerf / None Logique de prédation du loup vers la proie la plus proche.

reproduire() list None Vérifie la proximité d’un partenaire et les conditions d’énergie pour procréer.

🔄 LOGIQUE / ALGORITHME

Initialisation : Création des listes d’objets (Cerf, Loup, Ressource) avec des coordonnées aléatoires.

Boucle de Simulation (step) :

Les plantes poussent (régénération d’énergie).

Les cerfs se déplacent ➔ mangent des plantes ➔ vieillissent ➔ se reproduisent.

Les loups se déplacent ➔ chassent des cerfs ➔ vieillissent ➔ meurent de faim si faim > 10.

Suppression des individus dont en_vie == False.

Visualisation : Mise à jour des coordonnées des points sur le graphique ax1 et mise à jour des courbes sur ax2.

🚨 GESTION DES ERREURS

Filtre Warnings : Le script ignore les avertissements Matplotlib pour une exécution plus propre.

Vérification de vie : Chaque méthode (deplacer, chasser, etc.) vérifie si self.en_vie est vrai avant d’agir.

✅ CONTRAINTES & RÈGLES MÉTIER

Reproduction : Nécessite un mâle et une femelle à proximité avec une énergie > 70 (Cerfs) ou 80 (Loups).

Mort : Survient par vieillesse (épuisement de l’énergie après l’âge de 100) ou par prédation/faim.

Rebond : Les animaux ne peuvent pas sortir des limites largeur x hauteur.

🧪 TESTS ATTENDUS

Survie : Vérifier que les loups ne mangent pas tous les cerfs trop vite (équilibre).

Extinction : Tester si les ressources suffisent à maintenir la population de cerfs.

Génétique : Vérifier que le sexe des nouveau-nés est bien distribué à 50/50.

📊 PERFORMANCES ATTENDUES

Temps d’exécution : Fluide jusqu’à ~200 individus. Au-delà, le calcul des distances O(N²) peut ralentir l’animation.

Mémoire : Faible, l’historique est limité à 200 points (max_historique).

📝 EXEMPLE D’UTILISATION

▶️ Lancement direct

Bash

python onizuka_1d8okfdjabdejwlb_333.py

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “onizuka_1d8okfdjabdejwlb_333.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *