diff --git a/HolidayTrip/Fundamentals/radar/main b/HolidayTrip/Fundamentals/radar/main deleted file mode 100755 index f0bc883..0000000 Binary files a/HolidayTrip/Fundamentals/radar/main and /dev/null differ diff --git a/HolidayTrip/Fundamentals/reap_and_tear/main b/HolidayTrip/Fundamentals/reap_and_tear/main deleted file mode 100755 index 663d8a3..0000000 Binary files a/HolidayTrip/Fundamentals/reap_and_tear/main and /dev/null differ diff --git a/HolidayTrip/Proficiencies/animals/debug b/HolidayTrip/Proficiencies/animals/debug deleted file mode 100755 index f91c613..0000000 Binary files a/HolidayTrip/Proficiencies/animals/debug and /dev/null differ diff --git a/HolidayTrip/Proficiencies/animals/fish.c b/HolidayTrip/Proficiencies/animals/fish.c index 969b485..2d297cc 100644 --- a/HolidayTrip/Proficiencies/animals/fish.c +++ b/HolidayTrip/Proficiencies/animals/fish.c @@ -45,7 +45,7 @@ struct animal *animal_from_fish(const char *color, struct fish *fish){ } strcpy(animal->color, color); - animal->type = 1; + animal->type = FISH; /* union animals *animals = malloc(sizeof(union animals)); if(animals == NULL){ diff --git a/HolidayTrip/Proficiencies/animals/insect.c b/HolidayTrip/Proficiencies/animals/insect.c index ff3db89..7e4c692 100644 --- a/HolidayTrip/Proficiencies/animals/insect.c +++ b/HolidayTrip/Proficiencies/animals/insect.c @@ -44,7 +44,7 @@ struct animal *animal_from_insect(const char *color, struct insect *insect){ } strcpy(animal->color, color); - animal->type = 0; + animal->type = INSECT; animal->animal.insect = insect; return animal; } diff --git a/HolidayTrip/Proficiencies/animals/vector.c b/HolidayTrip/Proficiencies/animals/vector.c index 229db65..54c2436 100644 --- a/HolidayTrip/Proficiencies/animals/vector.c +++ b/HolidayTrip/Proficiencies/animals/vector.c @@ -36,7 +36,7 @@ struct vector *vector_append(struct vector *v, struct animal *animal){ if (v->capacity <= v->size) v = vector_resize(v, v->capacity * 2); // TODO A voir si le realloc ajoute de l'espace a gauche ou a droite // car sinon y a ecrasement de data - *(v->animal + (v->capacity - v->size )) = animal; + v->animal[v->size] = animal; v->size ++; return v; } @@ -46,10 +46,12 @@ void free_animal(struct animal *animal){ if (animal == NULL) return; //if(animal->color != NULL) free(animal->color); - printf("%s\n",animal->animal.fish->species); - printf("%s\n", animal->animal.insect->species); - if(animal->type == INSECT) free_insect(animal->animal.insect); - if(animal->type == FISH) free_fish(animal->animal.fish); + //printf("%s\n",animal->animal.fish->species); + //printf("%s\n", animal->animal.insect->species); + if(animal->type == INSECT) + free_insect(animal->animal.insect); + if(animal->type == FISH) + free_fish(animal->animal.fish); free(animal->color); free(animal); } diff --git a/HolidayTrip/Proficiencies/museum_restoration/debug b/HolidayTrip/Proficiencies/museum_restoration/debug new file mode 100755 index 0000000..0649aa5 Binary files /dev/null and b/HolidayTrip/Proficiencies/museum_restoration/debug differ diff --git a/HolidayTrip/Proficiencies/museum_restoration/fossils.c b/HolidayTrip/Proficiencies/museum_restoration/fossils.c index e69de29..7accbc7 100644 --- a/HolidayTrip/Proficiencies/museum_restoration/fossils.c +++ b/HolidayTrip/Proficiencies/museum_restoration/fossils.c @@ -0,0 +1,49 @@ +#include "fossils.h" +#include +#include +#include + +struct fossil *init_fossil(char *species, enum body_part body_part, size_t age, char has_wings){ + + if(species == NULL) return NULL; + + struct fossil *fossil = malloc(sizeof(struct fossil)); + if(fossil == NULL)return NULL; + + int index = 0; + while(*(species + index) != '\0') index ++; + + fossil->species = malloc((index + 1) * sizeof(char*)); + if(fossil == NULL){ + free(fossil); + return NULL; + } + + strcpy(fossil->species, species); + fossil->part = body_part; + fossil->age = age; + fossil->has_wings = has_wings; + + return fossil; +} + +struct fossil *assemble_wingless(struct fossil *fossils[4]){ + + if(fossils == NULL) return NULL; + + for(int i = 0; i < 4; i++){ + if(fossils[i] == NULL) return NULL; + } + + if() + /* + char *sp = fossils[0]->species; + int age = fossils[0]->age; + int req = 0; + for(int i = 0; i < 4; i++){ + + if(fossils[i]->has_wings != 0) return NULL; + if(fossils[i]->species != sp && fossils[i]->age == age) return NULL; + if((fossils[i]->part != SKULL || fossils[i]->part != ) || req != 1;){} + }*/ +} diff --git a/HolidayTrip/Proficiencies/museum_restoration/fossils.h b/HolidayTrip/Proficiencies/museum_restoration/fossils.h index e69de29..eaf1356 100644 --- a/HolidayTrip/Proficiencies/museum_restoration/fossils.h +++ b/HolidayTrip/Proficiencies/museum_restoration/fossils.h @@ -0,0 +1,27 @@ +#ifndef FOSSILS_H +#define FOSSILS_H +#include + +enum body_part +{ + SKULL, + TORSO, + TAIL, + WINGS, + LEGS, + COMPLETE, +}; + +struct fossil{ + char* species; + enum body_part part; + size_t age; + char has_wings; +}; + +struct fossil *init_fossil(char *species, enum body_part body_part, size_t age, char has_wings); +struct fossil *assemble_wingless(struct fossil *fossils[4]); +struct fossil *assemble_with_wings(struct fossil *fossils[5]); +struct fossil **assemble_all_fossils(struct fossil **fossils, size_t nb_fossils); + +#endif diff --git a/HolidayTrip/Proficiencies/museum_restoration/main.c b/HolidayTrip/Proficiencies/museum_restoration/main.c index cfd22c1..7c6ee0d 100644 --- a/HolidayTrip/Proficiencies/museum_restoration/main.c +++ b/HolidayTrip/Proficiencies/museum_restoration/main.c @@ -1,6 +1,15 @@ #include - +#include #include "fossils.h" -int main() -{} +int main(){ + + struct fossil *f = init_fossil("Human", TORSO, 23, 1); + printf("species: %s\n", f->species); + printf("part: %d\n", f->part); + printf("age: %li\n", f->age); + printf("wings: %i\n", f->has_wings); + free(f->species); + free(f); + +}