diff --git a/src/competence.c b/src/competence.c
index 0e790742f92e95554d580619324a12dca1f1da49..14d93658080051b5d22e8040b1ebbcbceefd92fb 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 7fd86b834464c1793e4d37ad48f53a4e1e8a7160..530a1539838dcbc84640abf99d0640a92985f8dc 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 8991110722e8f35c099b91d833d6bbc963ca1aa9..878ce8311bac3f6ea57b6414487d7ed5ee83b575 100644
--- a/src/main.c
+++ b/src/main.c
@@ -150,5 +150,8 @@ Pack_A.GUI_Package = GUI_Pack;
     Test_Competences();
 
 
+
+
+
     return 0;
 }