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
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.
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.
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
#The flags passed to the linker
LDFLAGS:=-lm -lSDL2
#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)
run_tests: tests
......@@ -18,7 +18,7 @@ run_tests: tests
tests: vec_tests.o vec2.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
planet.o: planet.h
celestial_body.o: celestial_body.h
vec2.o: vec2.h
......
#include "planet.h"
#include "celestial_body.h"
#include <stdlib.h>
#define G 6.67e-11
......
#ifndef _PLANET_H_
#define _PLANET_H_
#ifndef _CELESTIAL_BODY_H_
#define _CELESTIAL_BODY_H_
#include "../vec2/vec2.h"
#include "../gfx/gfx.h"
typedef struct _planet
typedef struct _celestial_body
{
double mass;
vec2 pos; // x(t)
vec2 prec_pos; // x(t - dt)
} planet_t;
} celestial_body_t;
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
planet_t *planets; // An array of orbiting planets
celestial_body_t *planets; // An array of orbiting planets
} system_t;
// Those function are not mandatory to implement,
// 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);
void show_system(struct gfx_context_t *ctxt, system_t *system);
void update_system(system_t *system, double delta_t);
......
#include "gfx/gfx.h"
#include "vec2/vec2.h"
#include "planet/planet.h"
#include "celestial_body/celestial_body.h"
#include <stdio.h>
#include <stdlib.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