Skip to content
Snippets Groups Projects
Commit 30bbc5ea authored by orestis.malaspin's avatar orestis.malaspin
Browse files

Merge branch 'master' into 'master'

Renommer type "planet_t" par "celestial_body_t"

See merge request !42
parents eb445369 81c31b8c
No related branches found
No related tags found
1 merge request!42Renommer type "planet_t" par "celestial_body_t"
Pipeline #27436 passed
...@@ -182,7 +182,7 @@ Dans le cadre de ce travail pratique, vous allez devoir implementer une simulati ...@@ -182,7 +182,7 @@ Dans le cadre de ce travail pratique, vous allez devoir implementer une simulati
Si toutefois vous décidiez de prendre ce squelette (excellente décision, je vous en félicite), une fois téléchargé et décompressé, vous devrez effectuer les actions suivantes : Si toutefois vous décidiez de prendre ce squelette (excellente décision, je vous en félicite), une fois téléchargé et décompressé, vous devrez effectuer les actions suivantes :
1. Remplacer le fichier `skeleton/vec2/vec2.c` par celui que vous avez réalisé durant un précédent travail pratique. 1. Remplacer le fichier `skeleton/vec2/vec2.c` par celui que vous avez réalisé durant un précédent travail pratique.
2. Prendre connaissance des fichiers `skeleton/planet/planet.h` et `skeleton/main.c`. Ces fichiers contiennent des commentaires pour vous guider. 2. Prendre connaissance des fichiers `skeleton/celestial_body/celestial_body.h` et `skeleton/main.c`. Ces fichiers contiennent des commentaires pour vous guider.
3. Réaliser le travail pratique. 3. Réaliser le travail pratique.
Ce travail est séparé en deux parties, qui valent respectivement 4.5 et 1.5 points (Pour un total de 6 (c'est dingue !!!)). Ce travail est séparé en deux parties, qui valent respectivement 4.5 et 1.5 points (Pour un total de 6 (c'est dingue !!!)).
......
...@@ -5,11 +5,11 @@ CFLAGS:=-g -Ofast -Wall -Wextra -fsanitize=address -fsanitize=leak -std=gnu11 ...@@ -5,11 +5,11 @@ CFLAGS:=-g -Ofast -Wall -Wextra -fsanitize=address -fsanitize=leak -std=gnu11
#The flags passed to the linker #The flags passed to the linker
LDFLAGS:=-lm -lSDL2 LDFLAGS:=-lm -lSDL2
#Path to the lib Vec2 #Path to the lib Vec2
VPATH:=vec2 gfx planet VPATH:=vec2 gfx celestial_body
main: main.o vec2.o gfx.o planet.o main: main.o vec2.o gfx.o celestial_body.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
run_tests: tests run_tests: tests
...@@ -18,7 +18,7 @@ run_tests: tests ...@@ -18,7 +18,7 @@ run_tests: tests
tests: vec_tests.o vec2.o tests: vec_tests.o vec2.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
planet.o: planet.h celestial_body.o: celestial_body.h
vec2.o: vec2.h vec2.o: vec2.h
......
#include "planet.h" #include "celestial_body.h"
#include <stdlib.h> #include <stdlib.h>
#define G 6.67e-11 #define G 6.67e-11
......
#ifndef _PLANET_H_ #ifndef _CELESTIAL_BODY_H_
#define _PLANET_H_ #define _CELESTIAL_BODY_H_
#include "../vec2/vec2.h" #include "../vec2/vec2.h"
#include "../gfx/gfx.h" #include "../gfx/gfx.h"
typedef struct _planet typedef struct _celestial_body
{ {
double mass; double mass;
vec2 pos; // x(t) vec2 pos; // x(t)
vec2 prec_pos; // x(t - dt) vec2 prec_pos; // x(t - dt)
} planet_t; } celestial_body_t;
typedef struct _system typedef struct _system
{ {
planet_t star; // ex. The sun celestial_body_t star; // ex. The sun
uint32_t nb_planets; // The number of orbiting planets uint32_t nb_planets; // The number of orbiting planets
planet_t *planets; // An array of orbiting planets celestial_body_t *planets; // An array of orbiting planets
} system_t; } system_t;
// Those function are not mandatory to implement, // Those function are not mandatory to implement,
// it's rather a hint of what you should have. // it's rather a hint of what you should have.
planet_t create_planet(double mass, vec2 pos); celestial_body_t create_celestial_body(double mass, vec2 pos);
system_t create_system(double delta_t); system_t create_system(double delta_t);
void show_system(struct gfx_context_t *ctxt, system_t *system); void show_system(struct gfx_context_t *ctxt, system_t *system);
void update_system(system_t *system, double delta_t); void update_system(system_t *system, double delta_t);
......
#include "gfx/gfx.h" #include "gfx/gfx.h"
#include "vec2/vec2.h" #include "vec2/vec2.h"
#include "planet/planet.h" #include "celestial_body/celestial_body.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment