script_217cvmn_217.py

49,00 

Simuler et animer le Jeu de la Vie de Conway sur une grille 2D toroïdale.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_217cvmn_217.py

Version 1.0.0

Date de création 26/02/2026

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

Objectif principal Simuler et animer le Jeu de la Vie de Conway sur une grille 2D toroïdale.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script implémente un automate cellulaire classique (Le Jeu de la Vie). Il génère une grille de cellules (vivantes ou mortes), applique les règles de survie et de naissance de Conway à chaque génération, et affiche le résultat sous forme d’une animation fluide en noir et blanc.

📌 Problème résolu

Il permet de visualiser des systèmes complexes émergents à partir de règles simples. L’utilisation de la convolution vectorisée permet de simuler de grandes grilles sans perte de performance significative par rapport à une approche par boucles imbriquées.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.8+ (pour le support de NumPy/SciPy récent)

OS cible Windows / Linux / MacOS

Mode d’exécution GUI (Animation Matplotlib)

📦 Dépendances / Librairies

Librairies externes (pip install)

numpy : Gestion des matrices et calculs numériques.

matplotlib : Moteur de visualisation et d’animation.

scipy : Utilisation de convolve2d pour le calcul des voisins.

📥 ENTRÉES (INPUTS)

📂 Paramètres de configuration (dans le code)

# Nom Type Obligatoire Description Exemple

1 size int ✅ Oui Dimension de la grille (N x N) 100

2 initial_density float ✅ Oui Ratio de cellules vivantes au départ 0.15

3 generations int ✅ Oui Nombre de cycles de simulation 200

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Type Chemin / Format Description

Fenêtre Graphique Matplotlib Plot Animation interactive en temps réel.

Console Text Logs de démarrage et de fin de simulation.

🧱 STRUCTURE DU SCRIPT

script_217cvmn_217.py

├── 📌 IMPORTS (numpy, matplotlib, scipy)

├── 📌 CLASSE GameOfLife

│ ├── __init__ → Initialise la grille et ajoute un « Glider ».

│ └── update_rules() → Calcule la génération suivante via convolution.

├── 📌 FONCTION run_simulation()

│ └── animate() → Met à jour l’image pour chaque frame.

└── 📌 MAIN (Point d’entrée principal)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

update_rules() Aucun np.ndarray Applique les 4 règles de Conway via masques booléens.

run_simulation(gol, gen) Objet GoL, int None Configure FuncAnimation et affiche la fenêtre.

animate(i) int (frame) list Fonction interne mettant à jour les données de l’image.

🔄 LOGIQUE / ALGORITHME

Initialisation : Création d’une matrice binaire aléatoire. Insertion manuelle d’un motif « Glider » (planeur).

Calcul du voisinage : Utilisation d’un noyau (kernel) 3×3 pour sommer les 8 voisins de chaque cellule.

Note : Le paramètre boundary=’wrap’ transforme la grille en tore (les bords communiquent).

Application des règles :

Si cellule vivante : survit si elle a 2 ou 3 voisins.

Si cellule morte : devient vivante si elle a exactement 3 voisins.

Mise à jour : Remplacement de l’ancienne grille par la nouvelle et rendu graphique.

🚨 GESTION DES ERREURS

Volumétrie : Si size est trop petit (<10), l’insertion du Glider pourrait lever une erreur d’index (géré par un if size >= 10).

Performance : Si la taille dépasse 500×500, l’animation peut saccader selon la puissance CPU/GPU.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La grille est cyclique (tore) ; un objet sortant par la droite réapparaît à gauche.

Règle 2 : Les mises à jour sont synchrones (toutes les cellules changent d’état en même temps).

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python script_217cvmn_217.py

📋 Sortie attendue (Console)

Plaintext

Lancement de la simulation du Jeu de la Vie (Taille: 100×100, Générations: 200)

Simulation terminée.

📊 PERFORMANCES ATTENDUES

Temps d’exécution : ~50ms par génération pour une grille 100×100.

Consommation mémoire : Très faible (< 100 Mo).

Avis

Il n’y a pas encore d’avis.

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

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