From 414f96866bd8e80ae0c442714d9414b34a5326eb Mon Sep 17 00:00:00 2001
From: "arnaud.devevey" <arnaud.de-vevey@etu.hesge.ch>
Date: Mon, 17 Jun 2019 09:58:57 +0200
Subject: [PATCH] 10h

---
 perso/galaxy.c |  2 +-
 perso/star.c   | 66 +++++++++++++++++++++++---------------------------
 perso/star.h   |  3 +--
 perso/vector.c |  2 +-
 perso/vector.h |  2 ++
 5 files changed, 35 insertions(+), 40 deletions(-)

diff --git a/perso/galaxy.c b/perso/galaxy.c
index 5fa2cae..6ad649c 100644
--- a/perso/galaxy.c
+++ b/perso/galaxy.c
@@ -64,7 +64,7 @@ int main(int argc, char **argv) {
 
 
     } else {
-        printf("Nombre d'arguments non valide");
+        printf("\nNombre d'arguments non valide \n\n");
         exit(1);
     }
 }
diff --git a/perso/star.c b/perso/star.c
index 7925780..50715aa 100644
--- a/perso/star.c
+++ b/perso/star.c
@@ -17,30 +17,15 @@ Star* new_star_vel(Vector new_pos, Vector new_speed, Vector new_acc, double new_
 	new_star -> acc = new_acc;
 	new_star -> mass = new_mass;
 
-
-	// copie mais en pointeur de speed
-	Vector* p_speed = new_vec(new_speed.x , new_speed.y);
-	// est-ce que c'est égal à &new_speed ? 
-
 	// on multiplie le vecteur speed par delta_t (qui retourne un pointeur sur vecteur, que l'on déréférence) 
-	Vector* pos_tmp = mul_vec(p_speed, new_dt);
+	Vector* pos_tmp = mul_vec(&new_speed, new_dt);
 	new_star -> previous_pos = *pos_tmp;
 	free(pos_tmp);
-	free(p_speed);
-
-
-
-	// copie mais en pointeur de previous_pos
-	Vector* p_pre_pos = new_vec(new_star -> previous_pos.x, new_star -> previous_pos.y);
-	// copie mais en pointeur de pos
-	Vector* p_pos = new_vec(new_star -> pos.x, new_star -> pos.y);
 
 	// et on soustrait ce résultat au vecteur position (qui retourne un pointeur sur vecteur, que l'on déréférence)
-	pos_tmp = sub_vec(p_pre_pos, p_pos);
+	pos_tmp = sub_vec(&(new_star -> previous_pos), &(new_star -> pos));
 	new_star -> previous_pos = *pos_tmp;
 	free(pos_tmp);
-	free(p_pre_pos);
-	free(p_pos);
 
 	pos_tmp = NULL;
 
@@ -124,29 +109,24 @@ Vector random_speed(Vector r_i, double m_i) {
 
 
 
-Star* super_star(Star* list_stars, int size_list) {
+Star* super_star(Star* list_stars, int selection, int size_list) {
 	Star* super_star = malloc(sizeof(Star));
 
 	for (int i = 0; i < size_list; i++) {
-		// position
-		super_star -> pos.x += list_stars[i].pos.x;
-		super_star -> pos.y += list_stars[i].pos.y;
+		if (i != selection) {
+			// position
+			super_star -> pos.x += list_stars[i].pos.x;
+			super_star -> pos.y += list_stars[i].pos.y;
 
-		// accélération 
-		super_star -> acc.x += list_stars[i].acc.x;
-		super_star -> acc.y += list_stars[i].acc.y;
+			// accélération 
+			super_star -> acc.x += list_stars[i].acc.x;
+			super_star -> acc.y += list_stars[i].acc.y;
 
-		// masse 
-		super_star -> mass += list_stars[i].mass;
+			// masse 
+			super_star -> mass += list_stars[i].mass;
+		}
 	}
 
-	// ne donne pas la même chose si on fait /= 2 pour chaque boucle for
-	super_star -> pos.x /= size_list;
-	super_star -> pos.y /= size_list;
-	super_star -> acc.x /= size_list;
-	super_star -> acc.y /= size_list;
-	super_star -> mass /= size_list;
-
 	return super_star;
 }
 
@@ -201,15 +181,15 @@ double random_1() {
 
 void tests_star() {
 	printf("TESTS STAR : \n");
-	
+
 	Vector* position = new_vec(4.0, 5.0);
 	Vector* speed = new_vec(4.0, 5.0);
 	Vector* acceleration = new_vec(4.0, 5.0);
 
 	Star* s1 = new_star_vel(*position, *speed, *acceleration, MASSE_MIN, DELTA_T);
-	print_star(s1);
+	// print_star(s1);
 	
-
+	tests_star_new(s1);
 
 
 	free(s1);
@@ -219,4 +199,18 @@ void tests_star() {
 
 
 	printf("\n");
+}
+
+void tests_star_new(Star* s) {
+	Star star_test;
+	double x = 4.0;
+	double y = 5.0;
+	//star_test.previous_pos = ;
+	//star_test.acc = ;
+	//star_test.mass = ;
+
+	TEST(	s -> pos.x == x && s -> pos.y == y && \
+			s -> previous_pos.x == x && s -> previous_pos.y == y && \
+			s -> acc.x == x && s -> acc.y == y && \
+			s -> mass == 1e20);
 }
\ No newline at end of file
diff --git a/perso/star.h b/perso/star.h
index c841dd2..52d40ea 100644
--- a/perso/star.h
+++ b/perso/star.h
@@ -1,7 +1,6 @@
 #ifndef __STAR_H__
 #define __STAR_H__
 
-
 #include "vector.h"
 
 #define MASSE_MIN 1e20
@@ -70,7 +69,7 @@ Vector random_speed(Vector r_i, double m_i);
 
 
 // calcule une super etoile d'après le poids et la position d'un groupe d'étoiles
-Star* super_star(Star* list_stars, int size_list);
+Star* super_star(Star* list_stars, int selection, int size_list);
 
 int random_10();
 double random_1();
diff --git a/perso/vector.c b/perso/vector.c
index 6cb49cd..4ee295e 100644
--- a/perso/vector.c
+++ b/perso/vector.c
@@ -1,6 +1,6 @@
 
 #include "vector.h"
-#include "tests.h"
+
 
 
 
diff --git a/perso/vector.h b/perso/vector.h
index 294e48c..0067838 100644
--- a/perso/vector.h
+++ b/perso/vector.h
@@ -7,6 +7,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "tests.h"
+
 
 
 /* * * * * * * * * * * * * * * * *
-- 
GitLab