onizuka_simulation.py

49,00 

Simuler un écosystème dynamique impliquant la croissance de l’herbe, le comportement des cerfs (proies) et des loups (prédateurs).

UGS : onizuka_simulation.py Catégorie : Étiquette :

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script onizuka_simulation.py

Version 1.0.0

Date de création 25/03/2026

Auteur / Demandeur refoïa jeremy

Objectif principal Simuler un écosystème dynamique impliquant la croissance de l’herbe, le comportement des cerfs (proies) et des loups (prédateurs).

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script utilise la bibliothèque Pygame pour créer une simulation visuelle en temps réel. Il gère trois entités : l’herbe (ressource), les cerfs (consommateurs primaires) et les loups (prédateurs). Chaque agent possède des règles de déplacement, de consommation d’énergie, de reproduction et de mort.

📌 Problème résolu

Il permet d’illustrer visuellement les cycles biologiques et les interactions complexes entre espèces (modèle type Lotka-Volterra simplifié) dans un environnement clos.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS) avec support graphique

Mode d’exécution Interface Graphique (GUI)

📦 Dépendances / Librairies

Librairies standard : random

Librairies externes : pygame

📥 ENTRÉES (INPUTS)

📂 Paramètres de configuration (Hardcodés)

# Nom Type Description Valeur par défaut

1 WIDTH / HEIGHT int Dimensions de la fenêtre de simulation 800×600

2 HERBE_REGEN float Probabilité d’apparition de nouvelle herbe 0.5

3 AGENT_SIZE int Taille d’affichage des agents (pixels) 5

📤 SORTIES (OUTPUTS)

📂 Données en sortie

Type Format Description

Visuel Fenêtre Pygame Rendu graphique en temps réel de la prairie et des agents

Console N/A Aucun log console par défaut

🧱 STRUCTURE DU SCRIPT

onizuka_simulation.py

├── 📌 IMPORTS (pygame, random)

├── 📌 CONSTANTES / CONFIG (Couleurs, Dimensions, FPS)

├── 📌 CLASSES

│ ├── Agent → Classe mère (déplacement, énergie)

│ ├── Cerf(Agent) → Logique spécifique (manger herbe)

│ └── Loup(Agent) → Logique spécifique (chasser cerf)

└── 📌 MAIN LOOP (Gestion des événements, mises à jour, dessin)

🔧 Détail des classes & fonctions

Fonction/Méthode Paramètres Retour Rôle

Agent.move() Aucun None Déplacement aléatoire et réduction d’énergie

Cerf.manger(herbes) list None Détecte l’herbe à proximité et augmente l’énergie

Loup.chasser(cerfs) list bool Détecte un cerf, le consomme et gagne de l’énergie

🔄 LOGIQUE / ALGORITHME

Initialisation : Création des listes d’objets (25 cerfs, 5 loups, 50 herbes).

Boucle de rendu (30 FPS) :

Phase Herbe : Apparition aléatoire basée sur HERBE_REGEN.

Phase Cerfs : Déplacement ➔ Alimentation ➔ Test de reproduction (>50 env) ➔ Test de mort (<=0 env). Phase Loups : Déplacement ➔ Chasse ➔ Test de reproduction (>80 env) ➔ Test de mort (<=0 env). Affichage : Dessin des cerfs (Blancs), loups (Rouges) et herbes (Cercles verts clairs). 🚨 GESTION DES ERREURS Performance : En cas de surpopulation massive d'agents, le framerate peut chuter. Limites : Les agents sont contraints dans les coordonnées (0,0) à (WIDTH, HEIGHT). ✅ RÈGLES MÉTIER Coût de vie : Chaque mouvement réduit l'énergie de l'agent (-0.1). Priorité : Les cerfs doivent être à moins de 10 pixels pour manger/être mangés. Reproduction : Un agent se dédouble lorsqu'il atteint son seuil critique d'énergie, partageant son énergie avec sa progéniture. 🧪 TESTS ATTENDUS # Cas de test Entrée Résultat attendu 1 Équilibre Config initiale Les populations oscillent sans s'éteindre immédiatement 2 Famine Cerfs 0 herbes Extinction totale des cerfs puis des loups 3 Fermeture Clic sur "X" Arrêt propre du processus Pygame 📝 EXEMPLE D'UTILISATION ▶️ Lancement en ligne de commande Bash python onizuka_simulation.py

Avis

Il n’y a pas encore d’avis.

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

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