🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script animation_volcan.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur refoïa jeremy
Objectif principal Générer une animation textuelle (ASCII art) dynamique d’un volcan en éruption dans le terminal.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script simule visuellement une éruption volcanique directement dans la console. Il utilise des caractères ASCII, des codes couleurs ANSI et une boucle temporelle pour créer un effet de mouvement (fumée qui monte, lave qui coule, projections de particules et ciel étoilé scintillant).
📌 Problème résolu
Offre une démonstration ludique de manipulation du terminal, de gestion des couleurs ANSI et de création d’animations simples en Python sans bibliothèque graphique externe (type Pygame).
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.6+ (pour les f-strings)
OS cible Windows / Linux / MacOS (Multiplateforme)
Mode d’exécution CLI (Ligne de commande)
📦 Dépendances / Librairies
Librairies standard (built-in)
random : Génération de l’aléatoire (particules, couleurs, étoiles).
time : Gestion du délai entre les frames (fps).
os : Nettoyage de la console (cls ou clear).
sys : Interactions système de base.
📥 ENTRÉES (INPUTS)
# Nom Type Obligatoire Description Exemple
1 duree int ❌ Non Durée de l’animation en secondes 60
📤 SORTIES (OUTPUTS)
# Nom Type Description Exemple
1 Flux Standard stdout Animation visuelle continue dans le terminal (Rendu ASCII couleur)
🧱 STRUCTURE DU SCRIPT
animation_volcan.py
│
├── 📌 CLASSE Couleurs (Gestion des codes ANSI)
├── 📌 FONCTIONS UTILITAIRES
│ ├── effacer_ecran() → Nettoie le terminal selon l’OS
│ └── couleur_lave() → Sélection aléatoire de teintes chaudes
├── 📌 MOTEUR DE GÉNÉRATION
│ ├── generer_particules() → Crée les projections d’éruption
│ └── dessiner_volcan(frame) → Assemble les couches (ciel, fumée, corps, base)
├── 📌 LOGIQUE D’ANIMATION
│ └── animation_volcan(duree) → Boucle principale (4 FPS)
└── 📌 MAIN (Point d’entrée)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
dessiner_volcan(frame) frame: int None Calcule et affiche l’image complète du volcan pour un instant T.
generer_particules(l, h) int, int list Retourne une liste de dictionnaires (coordonnées, symboles) pour les débris.
animation_volcan(duree) duree: int None Gère la boucle while et l’interruption utilisateur (Ctrl+C).
🔄 LOGIQUE / ALGORITHME
ÉTAPE 1 → Initialisation et attente de 1s.
ÉTAPE 2 → Entrée dans la boucle : Calcul du « frame » actuel.
ÉTAPE 3 → Construction dynamique de la chaîne de caractères (Ciel → Fumée → Éruption → Volcan → Lave au sol).
ÉTAPE 4 → Affichage des statistiques (Température/Intensité aléatoires).
ÉTAPE 5 → Pause de 0.25s et répétition jusqu’à la fin de la durée ou interruption.
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Arrêt manuel KeyboardInterrupt Efface l’écran et affiche un message de fin propre.
OS non reconnu os.name Utilise clear par défaut si ce n’est pas nt (Windows).
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Lancement standard duree=5 Animation fluide pendant 5s ⬜ À tester
2 Interruption Ctrl+C Sortie immédiate sans message d’erreur Python ⬜ À tester
3 Terminal réduit N/A Le volcan peut se déformer (affichage ligne par ligne) ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
# Lancement avec les paramètres par défaut (60 secondes)
python animation_volcan.py
📋 Exemple de sortie attendue (simplifié)
Plaintext
🌋 VOLCAN EN ÉRUPTION 🌋
(~~~~~) (~~~~)
* / *
/████████
▓▒░🌋🌋░▒▓
———————–
🌡️ Température : 1054°C | Intensité : Explosive! 💥
📌 NOTES COMPLÉMENTAIRES
Compatibilité : Les couleurs peuvent ne pas s’afficher correctement sur certains anciens terminaux Windows (utiliser Windows Terminal ou PowerShell récent).
Performance : Le script est très léger car il n’utilise que des impressions de texte (ASCII).



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