temp
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
#include "fossils.h"
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
//###############################################
|
||||
//# CE QUI ARRIVE EST MOCHE ATTENTION LES YEUX #
|
||||
//###############################################
|
||||
|
||||
struct fossil *init_fossil(char *species, enum body_part body_part, size_t age, char has_wings){
|
||||
|
||||
if(species == NULL) return NULL;
|
||||
@@ -27,6 +32,17 @@ struct fossil *init_fossil(char *species, enum body_part body_part, size_t age,
|
||||
return fossil;
|
||||
}
|
||||
|
||||
int contain(enum body_part part, enum body_part parts[], int size){
|
||||
//cahr required_part[4] = {SKULL, TORSO, TAIL, LEGS};
|
||||
//on compte le nombre de part
|
||||
int is_in = 0;
|
||||
|
||||
for(int i = 0; i < size; i++){
|
||||
if(part == parts[i]) is_in ++;
|
||||
}
|
||||
return is_in;
|
||||
}
|
||||
|
||||
struct fossil *assemble_wingless(struct fossil *fossils[4]){
|
||||
|
||||
if(fossils == NULL) return NULL;
|
||||
@@ -35,15 +51,69 @@ struct fossil *assemble_wingless(struct fossil *fossils[4]){
|
||||
if(fossils[i] == NULL) return NULL;
|
||||
}
|
||||
|
||||
if()
|
||||
/*
|
||||
char *sp = fossils[0]->species;
|
||||
char *specie = fossils[0]->species;
|
||||
int age = fossils[0]->age;
|
||||
int req = 0;
|
||||
int parts[4] = {};
|
||||
enum body_part required_part[4] = { SKULL, TORSO, TAIL, LEGS};
|
||||
|
||||
//on test tt
|
||||
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;){}
|
||||
}*/
|
||||
|
||||
if(fossils[i]->species != specie && fossils[i]->age == age) return NULL;
|
||||
|
||||
parts[i] = fossils[i]->part;
|
||||
}
|
||||
|
||||
//on test pour tt les parties
|
||||
// SI une part est en double alors on sort
|
||||
for (int part = 0; part < 4; part ++){
|
||||
if(contain(parts[part], required_part, 4) != 1) return NULL;
|
||||
}
|
||||
|
||||
//ON FREE EN MASSE GRRR
|
||||
|
||||
for(int foss = 0; foss < 4; foss ++){
|
||||
free(fossils[foss]->species);
|
||||
free(fossils[foss]);
|
||||
|
||||
//on set a NULL
|
||||
fossils[foss] = NULL;
|
||||
}
|
||||
|
||||
return init_fossil(specie, COMPLETE, age, 0);
|
||||
}
|
||||
|
||||
struct fossil *assemble_with_wings(struct fossil *fossils[5]){
|
||||
|
||||
size_t age = fossils[0]->age;
|
||||
char* specie = fossils[0]->species;
|
||||
|
||||
enum body_part required_part[5] = {SKULL, TORSO, TAIL, LEGS, WINGS};
|
||||
enum body_part parts[5] = {};
|
||||
|
||||
for (int i = 0; i < 5; i++){
|
||||
|
||||
if(fossils[i]->has_wings != 0) return NULL;
|
||||
|
||||
if(fossils[i]->species != specie && fossils[i]->age != age) return NULL;
|
||||
|
||||
parts[i] = fossils[i]->part;
|
||||
}
|
||||
|
||||
for(int part = 0; part < 5; part ++){
|
||||
if(contain(parts[part], required_part, 5) != 1) return NULL;
|
||||
}
|
||||
|
||||
// ON FREE EN MASSE ENCORE
|
||||
|
||||
for(int foss = 0; foss < 5; foss++){
|
||||
|
||||
free(fossils[foss]->species);
|
||||
free(fossils[foss]);
|
||||
fossils[foss] = NULL;
|
||||
}
|
||||
|
||||
return init_fossil(specie, COMPLETE, age, 1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user