Simulateur d'algorithme de pathfinding en C++ pour guider une sonde à travers un champ d'astéroïdes.
Telecharger & tester
make && ./interstonar -p port -m map (client IA reseau pour le jeu Interstonar)
Interstonar est un projet Epitech (groupe, cursus avance) qui simule la trajectoire d'une pierre lancee dans l'espace apres qu'une fusee chargee de l'evacuer a percute un asteroide de la ceinture interne du systeme solaire. Le programme fonctionne selon deux modes d'analyse exclusifs, selectionnes par les options --global ou --local, tous deux configures par un fichier TOML decrivant la scene ainsi que la position et le vecteur vitesse initiaux de la pierre passes en argument de la ligne de commande.
En mode global, le programme simule la trajectoire de la pierre a travers un systeme de corps celestes massifs et mobiles (position, vitesse, masse, rayon, nom, et un booleen optionnel 'goal' marquant une cible), en integrant la loi de gravitation universelle de Newton (F = G*m1*m2/r^2, avec G = 6.674e-11) via une methode d'integration d'Euler avec un pas de temps fixe d'une heure. La pierre, de masse fixee a 1 kg, voit sa position (X, Y, Z) affichee a chaque iteration, jusqu'a collision avec un objectif, collision avec un autre corps, ou expiration d'un delai de 365 jours simules au-dela duquel elle est consideree perdue dans l'espace.
Une regle de fusion des corps celestes s'applique lorsque deux corps entrent en collision entre eux (hors pierre) : leurs masses s'additionnent, leur rayon resulte de la somme des volumes individuels (V = 4/3*pi*r^3) ramenee a un rayon equivalent, leur nouvelle position est la moyenne des positions, leur nouvelle vitesse est la moyenne ponderee par les masses, leur nom est la concatenation des noms des corps fusionnes tries par ordre ASCII, et le corps resultant devient un objectif si au moins un des corps fusionnes en etait un.
En mode local, le probleme change de nature : la scene decrit des formes statiques et sans masse (spheres, cylindres circulaires droits autour de l'axe z, boites paralleles au plan Oxy, tores paralleles au plan Oxy), et il faut determiner laquelle la pierre va intersecter en utilisant le ray marching assiste par fonctions de distance signee (sphere-assisted ray marching / SDF). Une intersection est detectee des que la SDF descend a 0.1 ou moins ; l'absence d'intersection est actee au bout de 1000 pas ou lorsque la distance a l'objet le plus proche depasse 1000 unites. Toutes les valeurs numeriques du fichier TOML sont exprimees dans leurs unites SI de base.
Projet suivant
