This commit is contained in:
2026-02-13 18:37:24 +01:00
parent b646f5ca78
commit eae4adab35
10 changed files with 97 additions and 10 deletions
Binary file not shown.
@@ -0,0 +1,49 @@
#include "fossils.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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;){}
}*/
}
@@ -0,0 +1,27 @@
#ifndef FOSSILS_H
#define FOSSILS_H
#include <stdio.h>
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
@@ -1,6 +1,15 @@
#include <stdio.h>
#include <stdlib.h>
#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);
}