Alexis SGL
8 décembre 2025
Pour toute question ou pour échanger, vous pouvez me contacter à l’adresse suivant :
Dans le cadre du module de Programmation Orientée Objet (POO) de mon cursus à CESI, j’ai réalisé une simulation complète du célèbre automate cellulaire de John Conway : le Jeu de la Vie.
Le but de ce projet était de concevoir un programme capable de faire évoluer une population de cellules de manière autonome, selon des règles précises de naissance et de mort. Le véritable défi ne résidait pas seulement dans l’algorithme, mais dans la création d’une architecture logicielle modulaire respectant scrupuleusement les principes SOLID et intégrant des Design Patterns avancés.
Tout a commencé par une phase d’analyse et de modélisation. Avant d’écrire la moindre ligne de code, nous avons structuré l’application à l’aide de diagrammes UML (Classes, Séquence, Activité). Cela nous a permis de définir clairement la séparation entre la logique métier (le moteur du jeu) et l’interface utilisateur.
Ensuite est venue la phase de développement en C++, où nous avons utilisé nos diagrammes comme véritable plan de construction. Cette approche nous a permis de coder le programme de la manière la plus efficace possible, en structurant rigoureusement la gestion de la mémoire et en intégrant la bibliothèque SFML, tout en conservant une séparation claire entre la logique et l’affichage.

Enfin, nous avons validé notre jeu grâce à des tests unitaires automatisés, garantissant que les règles (survie, surpopulation, isolement) étaient parfaitement respectées, même dans les cas limites.
L’intégralité du code source, incluant l’architecture modulaire et les tests unitaires, est disponible sur mon GitHub.
🖥️ Mode Console : Une exécution rapide qui génère des fichiers textuels pour chaque itération, idéal pour analyser l’évolution pas à pas.
🎨 Mode Graphique : Une interface visuelle temps réel développée avec SFML, permettant d’observer la vie des cellules de manière fluide et interactive.
🌍 Mode Torique (Monde Infini) : Une extension qui connecte les bords de la grille (le haut avec le bas, la gauche avec la droite) grâce à l’arithmétique modulaire, créant un univers sans murs.
✅ Robustesse & Tests : Un système de validation automatique qui vérifie la stabilité des motifs (blocs, oscillateurs) et assure la fiabilité du programme.
La parole à vous