From e9ed47c0747cb9a94c5b6ea8e0ae54906f1e6807 Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Tue, 3 May 2016 13:16:40 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20fonctions=20de=20traitement=20des?= =?UTF-8?q?=20comp=C3=A9tences=20-=20Je=20n'arrive=20pas=20=C3=A0=20ajoute?= =?UTF-8?q?r=20un=20enfant=20=C3=A0=20une=20comp=C3=A9tence=20lorsqu'elle?= =?UTF-8?q?=20en=20a=20d=C3=A9j=C3=A0=20un=20#HelpM.Sanchez?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/competence.c | 178 ++++++++++++++++++++++++++++------------------- src/competence.h | 21 +++++- src/main.c | 3 + 3 files changed, 129 insertions(+), 73 deletions(-) diff --git a/src/competence.c b/src/competence.c index 0e79074..14d9365 100644 --- a/src/competence.c +++ b/src/competence.c @@ -24,62 +24,108 @@ typedef struct Competence{ */ - /*! - * \fn int set_Enfant(Competence *parent, Competence *enfant) - * \brief La fonction ajoute un enfant à une competence. + * \fn int init_Competence(Competence *noeud) + * \brief La fonction initialise une competence. * * \return Un entier. */ -int set_Enfant(Competence *parent, Competence *nouvel_enfant) +Competence* init_Competence(Competence *noeud) +{ + noeud = malloc(sizeof(Competence)); + + memset(noeud->nomComp, 0, sizeof(noeud->nomComp)); + memset(noeud->id, 0, sizeof(noeud->id)); + noeud->prix_competence = 0; + noeud->frere = NULL; + noeud->enfant = NULL; + noeud->effet = NULL; + noeud->connu = 0; + + return noeud; +} + +/* -------------------------------------------------------*/ +/* Fonctions de test des competences */ +/* -------------------------------------------------------*/ + +/*! + * \fn int estVide(Competence *c) + * \brief La fonction indique si une competence n'a pas d'enfants. + * + * \return vrai ou faux. + */ +int estVide(Competence *c) +{ + return(c->enfant==NULL); +} + + +/* -------------------------------------------------------*/ +/* Fonctions de set des competences */ +/* -------------------------------------------------------*/ + +int set_comp_enfant(Competence *parent, Competence *nouvel_enfant) /* Ne fonctionne pas */ { if(estVide(parent)) { parent->enfant = nouvel_enfant; } - /* else + else { - Competence *enfant = parent->enfant; - while(enfant!=NULL) + /* Ne fonctionne pas */ + /* + Competence *enfant_temp; + enfant_temp=init_Competence(enfant_temp); + enfant_temp = parent->enfant; + + while(enfant_temp!=NULL) { - enfant = enfant->frere; + enfant_temp = enfant_temp->frere; } - enfant->frere = nouvel_enfant; - }*/ + enfant_temp->frere = nouvel_enfant; + + parent->enfant->frere = nouvel_enfant; + */ + + } return 0; } +int set_comp_frere(Competence *noeud, Competence *nouveau_frere) +{ + noeud->frere = nouveau_frere; + return 0; +} int set_comp_name(Competence *comp, char *nom_donne) { strcpy(comp->nomComp, nom_donne); + return 0; } int set_comp_id(Competence *comp, char *nom_donne) { strcpy(comp->id, nom_donne); + return 0; } - -/*! - * \fn int init_Competence(Competence *noeud) - * \brief La fonction initialise une competence. - * - * \return Un entier. - */ -int init_Competence(Competence *noeud) +int set_comp_prix(Competence *comp, int prix) { - memset(noeud->nomComp, 0, sizeof(noeud->nomComp)); - memset(noeud->id, 0, sizeof(noeud->id)); - noeud->prix_competence = 0; - noeud->frere = NULL; - noeud->enfant = NULL; - noeud->effet = NULL; - noeud->connu = 0; + comp->prix_competence=prix; + return 0; +} +int set_comp_effet(Competence *comp, Effet_Competence *nouvel_effet) +{ + comp->effet = nouvel_effet; return 0; } +/* -------------------------------------------------------*/ +/* -------------------------------------------------------*/ +/* -------------------------------------------------------*/ + /*! * \fn int taille(Competence *noeud) @@ -122,26 +168,13 @@ unsigned int hauteur(Competence *noeud) } } -/*! - * \fn int estVide(Competence *c) - * \brief La fonction indique si une competence n'a pas d'enfants. - * - * \return Un booleen. - */ -int estVide(Competence *c) -{ - if (c->enfant == NULL) - return 0; - else - return 1; -} /*! * \fn boolean est_connue(Competence *c) * \brief La fonction indique si une competence est connue ou non. * - * \return Un booleen. + * \return vrai ou faux. */ boolean est_connue(Competence *c) { @@ -173,12 +206,6 @@ unsigned int NbEnfants(Competence *noeud) } -int rafraichir_competences(Competence * a) -{ - return 0; -} - - /*! * \fn boolean * est_complet(Competence *noeud) @@ -197,11 +224,16 @@ boolean est_complet(Competence *noeud) return 1; } + int chemin_auto_competence(Competence* c) /* Renvoie la liste des compétences non connues se trouvant sur le chemin d'une compétence sélectionnée */ { return 0; } + + + + Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une competence */ { return c->effet; @@ -209,11 +241,9 @@ Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une compe - Competence* Extraire_Arbres(char *filename) { node_t *rootXML, *Arbres; - char *id_text, *name_text; int nb_Arbres=0, i_0=0; rootXML = roxml_load_doc(filename); @@ -262,7 +292,7 @@ Competence* Extraire_Arbres(char *filename) /* La competence j devient un enfant de la competence i */ - set_Enfant(Arbre_Actuel, Competence_1); + set_comp_enfant(Arbre_Actuel, Competence_1); printf("L'enfant est : %s\n", Arbre_Actuel->enfant->nomComp); } } @@ -270,42 +300,50 @@ Competence* Extraire_Arbres(char *filename) } + int Test_Competences() { - char* nomTest = "LeNom"; printf("Debut Test Competences\n"); - Competence *Comp_Test_Parent, *Comp_Test_Enfant; -/* - set_comp_name(Comp_Test_Parent, "Papa"); - set_comp_id(Comp_Test_Parent, "ID_PA"); - set_comp_name(Comp_Test_Enfant, "Bebe"); - set_comp_id(Comp_Test_Enfant, "ID_BE"); - - init_Competence(Comp_Test_Parent); - init_Competence(Comp_Test_Enfant); + Competence *Comp_Test_Parent, *Comp_Test_Enfant, *Comp_Test_Petit_Enfant, *Comp_Test_Frere_Enfant; + Comp_Test_Parent=init_Competence(Comp_Test_Parent); + Comp_Test_Enfant=init_Competence(Comp_Test_Enfant); + Comp_Test_Petit_Enfant=init_Competence(Comp_Test_Petit_Enfant); + Comp_Test_Frere_Enfant=init_Competence(Comp_Test_Frere_Enfant); + if(estVide(Comp_Test_Parent)) /* Test de estVide() */ + { + printf("Parent n'a pas d'enfants\n"); + } -*/ + printf("Le nom de parent est : %s\n", Comp_Test_Parent->nomComp); /* Vaut NULL après l'init */ + set_comp_prix(Comp_Test_Parent, 4); + set_comp_name(Comp_Test_Parent, "Pepe"); + set_comp_id(Comp_Test_Parent, "ID_PE"); - /*Verif */ - /* printf("Le nom est : %s\n", Comp_Test_Parent->nomComp); - printf("L'ID est : %s\n", Comp_Test_Parent->id); - printf("Le nom est : %s\n", Comp_Test_Enfant->nomComp); - printf("L'ID est : %s\n", Comp_Test_Enfant->id); + printf("Le nom de parent est : %s\n", Comp_Test_Parent->nomComp); /* Vaut bien le nom */ - printf("Lol"); -*/ - //printf("On a : %d\n", Comp_Test_Parent->connu); + set_comp_name(Comp_Test_Enfant, "Papa"); + set_comp_id(Comp_Test_Enfant, "ID_PA"); + set_comp_name(Comp_Test_Petit_Enfant, "Bebe"); + set_comp_id(Comp_Test_Enfant, "ID_BE"); + set_comp_name(Comp_Test_Frere_Enfant, "Tonton"); + set_comp_id(Comp_Test_Frere_Enfant, "ID_TON"); + /* Tests */ + printf("Le prix de Parent est %d\n", Comp_Test_Parent->prix_competence); + printf("Le nom de Parent est %s\n", Comp_Test_Parent->nomComp); + printf("L'ID de Parent est %s\n", Comp_Test_Parent->id); + /* ---- */ + set_comp_enfant(Comp_Test_Parent, Comp_Test_Enfant); /* Association Parent-Enfant */ - // set_Enfant(&Comp_Test_Parent, &Comp_Test_Enfant); + set_comp_enfant(Comp_Test_Parent, Comp_Test_Frere_Enfant); /* Insertion d'un deuxième enfant (qui doit devenir le frère du premier) */ -// printf("L'enfant de %s est : %s\n",Comp_Test_Parent.nomComp,Comp_Test_Enfant.nomComp); -// printf("L'id de l'enfant de %s est : %s\n",Comp_Test_Parent.nomComp,Comp_Test_Parent.enfant.nomComp); + printf("\nL'enfant de %s est %s\n", Comp_Test_Parent->nomComp, Comp_Test_Parent->enfant->nomComp); + printf("L'autre enfant de %s est %s\n", Comp_Test_Parent->nomComp, Comp_Test_Parent->enfant->frere->nomComp); return 0; diff --git a/src/competence.h b/src/competence.h index 7fd86b8..530a153 100644 --- a/src/competence.h +++ b/src/competence.h @@ -5,11 +5,27 @@ #ifndef COMPETENCE_H_INCLUDED #define COMPETENCE_H_INCLUDED -#include "competence.h" + /* Fonctions */ -int init_Competence(Competence *noeud); +Competence* init_Competence(Competence *noeud); + +/* Fonctions Set */ + +int set_comp_enfant(Competence *parent, Competence *nouvel_enfant); + +int set_comp_frere(Competence *noeud, Competence *nouveau_frere); + +int set_comp_name(Competence *comp, char *nom_donne); + +int set_comp_id(Competence *comp, char *nom_donne); + +int set_comp_prix(Competence *comp, int prix); + +int set_comp_effet(Competence *comp, Effet_Competence *nouvel_effet); + +/* ------------ */ int taille(Competence *noeud); @@ -17,7 +33,6 @@ unsigned int NbEnfants(Competence *noeud); unsigned int hauteur(Competence *noeud); - Competence* construire_arbre_competence(Competence* a); int rafraichir_competences(Competence * a); diff --git a/src/main.c b/src/main.c index 8991110..878ce83 100644 --- a/src/main.c +++ b/src/main.c @@ -150,5 +150,8 @@ Pack_A.GUI_Package = GUI_Pack; Test_Competences(); + + + return 0; } -- GitLab