Skip to content

Posor/Falling-Sand

Repository files navigation

Simulation de Physique Granulaire (Falling Sand)

Ce projet a été réalisé dans le cadre du cours de Programmation Orientée Objet (POO) durant mon semestre 6 à Télécom Saint-Étienne. Il consiste en une simulation interactive de différents types de matériaux (sable, liquide, solide) au sein d'une grille cellulaire, développée en C++ avec la bibliothèque graphique SFML.

Objectifs Pédagogiques

L'objectif principal de ce projet était de mettre en pratique les concepts fondamentaux de la Programmation Orientée Objet à travers une application graphique temps réel :

  • Encapsulation : Protection des données et séparation des responsabilités au sein des classes.
  • Héritage : Création d'une hiérarchie de classes pour gérer les différents matériaux (classe mère abstraite Cellule et classes filles spécialisées).
  • Polymorphisme : Manipulation uniforme des différents éléments via des pointeurs et des méthodes virtuelles.
  • Gestion de la mémoire : Utilisation de pointeurs et des conteneurs de la STL (std::vector).

Description du Projet

L'application simule une grille de 150x150 cellules où chaque particule interagit avec son environnement selon des règles physiques définies. Le moteur de simulation gère la gravité, les collisions et les interactions chimiques (corrosion) à une fréquence de rafraîchissement définie.

Matériaux Implémentés

Le projet intègre quatre matériaux aux comportements distincts :

  1. Sable (Sand) : Soumis à la gravité, il chute verticalement ou glisse en diagonale s'il rencontre un obstacle, formant des tas naturels.
  2. Pierre (Stone) : Matériau solide et statique. Il bloque le passage mais peut être détruit par l'acide.
  3. Métal (Steel) : Matériau solide, statique et indestructible. Il résiste à la corrosion.
  4. Acide (Acid) : Liquide corrosif. Il s'écoule, se déplace horizontalement et détruit les matériaux vulnérables (Sable et Pierre) au contact avant de se dissiper.

Commandes Utilisateur

L'interface permet d'interagir avec la simulation via le clavier et la souris :

  • Clic Gauche : Ajouter de la matière (bloc de 3x3 cellules).
  • Espace : Mettre en pause ou reprendre la simulation.
  • Touche S : Sélectionner le Sable.
  • Touche O : Sélectionner la Pierre (Stone).
  • Touche E : Sélectionner le Métal (Steel).
  • Touche A : Sélectionner l'Acide.

Auteurs

Projet réalisé par Paulin Gasquet et Maxime Andri.

About

Simulation physique interactive de type "Falling Sand" développée en C++ avec la bibliothèque graphique SFML, illustrant les concepts de Programmation Orientée Objet.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages