Skip to content
Snippets Groups Projects
Commit e9ed47c0 authored by Romain Jegat's avatar Romain Jegat
Browse files

Ajout de fonctions de traitement des compétences - Je n'arrive pas à ajouter...

Ajout de fonctions de traitement des compétences - Je n'arrive pas à ajouter un enfant à une compétence lorsqu'elle en a déjà un #HelpM.Sanchez
parent 9beae12d
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -24,62 +24,108 @@ typedef struct Competence{ ...@@ -24,62 +24,108 @@ typedef struct Competence{
*/ */
/*! /*!
* \fn int set_Enfant(Competence *parent, Competence *enfant) * \fn int init_Competence(Competence *noeud)
* \brief La fonction ajoute un enfant à une competence. * \brief La fonction initialise une competence.
* *
* \return Un entier. * \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)) if(estVide(parent))
{ {
parent->enfant = nouvel_enfant; parent->enfant = nouvel_enfant;
} }
/* else else
{ {
Competence *enfant = parent->enfant; /* Ne fonctionne pas */
while(enfant!=NULL) /*
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; 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) int set_comp_name(Competence *comp, char *nom_donne)
{ {
strcpy(comp->nomComp, nom_donne); strcpy(comp->nomComp, nom_donne);
return 0;
} }
int set_comp_id(Competence *comp, char *nom_donne) int set_comp_id(Competence *comp, char *nom_donne)
{ {
strcpy(comp->id, nom_donne); strcpy(comp->id, nom_donne);
return 0;
} }
int set_comp_prix(Competence *comp, int prix)
/*!
* \fn int init_Competence(Competence *noeud)
* \brief La fonction initialise une competence.
*
* \return Un entier.
*/
int init_Competence(Competence *noeud)
{ {
memset(noeud->nomComp, 0, sizeof(noeud->nomComp)); comp->prix_competence=prix;
memset(noeud->id, 0, sizeof(noeud->id)); return 0;
noeud->prix_competence = 0; }
noeud->frere = NULL;
noeud->enfant = NULL;
noeud->effet = NULL;
noeud->connu = 0;
int set_comp_effet(Competence *comp, Effet_Competence *nouvel_effet)
{
comp->effet = nouvel_effet;
return 0; return 0;
} }
/* -------------------------------------------------------*/
/* -------------------------------------------------------*/
/* -------------------------------------------------------*/
/*! /*!
* \fn int taille(Competence *noeud) * \fn int taille(Competence *noeud)
...@@ -122,26 +168,13 @@ unsigned int hauteur(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) * \fn boolean est_connue(Competence *c)
* \brief La fonction indique si une competence est connue ou non. * \brief La fonction indique si une competence est connue ou non.
* *
* \return Un booleen. * \return vrai ou faux.
*/ */
boolean est_connue(Competence *c) boolean est_connue(Competence *c)
{ {
...@@ -173,12 +206,6 @@ unsigned int NbEnfants(Competence *noeud) ...@@ -173,12 +206,6 @@ unsigned int NbEnfants(Competence *noeud)
} }
int rafraichir_competences(Competence * a)
{
return 0;
}
/*! /*!
* \fn boolean * est_complet(Competence *noeud) * \fn boolean * est_complet(Competence *noeud)
...@@ -197,11 +224,16 @@ boolean est_complet(Competence *noeud) ...@@ -197,11 +224,16 @@ boolean est_complet(Competence *noeud)
return 1; 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 */ 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; return 0;
} }
Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une competence */ Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une competence */
{ {
return c->effet; return c->effet;
...@@ -209,11 +241,9 @@ Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une compe ...@@ -209,11 +241,9 @@ Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une compe
Competence* Extraire_Arbres(char *filename) Competence* Extraire_Arbres(char *filename)
{ {
node_t *rootXML, *Arbres; node_t *rootXML, *Arbres;
char *id_text, *name_text;
int nb_Arbres=0, i_0=0; int nb_Arbres=0, i_0=0;
rootXML = roxml_load_doc(filename); rootXML = roxml_load_doc(filename);
...@@ -262,7 +292,7 @@ Competence* Extraire_Arbres(char *filename) ...@@ -262,7 +292,7 @@ Competence* Extraire_Arbres(char *filename)
/* La competence j devient un enfant de la competence i */ /* 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); printf("L'enfant est : %s\n", Arbre_Actuel->enfant->nomComp);
} }
} }
...@@ -270,42 +300,50 @@ Competence* Extraire_Arbres(char *filename) ...@@ -270,42 +300,50 @@ Competence* Extraire_Arbres(char *filename)
} }
int Test_Competences() int Test_Competences()
{ {
char* nomTest = "LeNom";
printf("Debut Test Competences\n"); printf("Debut Test Competences\n");
Competence *Comp_Test_Parent, *Comp_Test_Enfant; Competence *Comp_Test_Parent, *Comp_Test_Enfant, *Comp_Test_Petit_Enfant, *Comp_Test_Frere_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);
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 de parent est : %s\n", Comp_Test_Parent->nomComp); /* Vaut bien le nom */
/* 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("Lol"); set_comp_name(Comp_Test_Enfant, "Papa");
*/ set_comp_id(Comp_Test_Enfant, "ID_PA");
//printf("On a : %d\n", Comp_Test_Parent->connu); 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("\nL'enfant de %s est %s\n", Comp_Test_Parent->nomComp, Comp_Test_Parent->enfant->nomComp);
// printf("L'id de l'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; return 0;
......
...@@ -5,11 +5,27 @@ ...@@ -5,11 +5,27 @@
#ifndef COMPETENCE_H_INCLUDED #ifndef COMPETENCE_H_INCLUDED
#define COMPETENCE_H_INCLUDED #define COMPETENCE_H_INCLUDED
#include "competence.h"
/* Fonctions */ /* 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); int taille(Competence *noeud);
...@@ -17,7 +33,6 @@ unsigned int NbEnfants(Competence *noeud); ...@@ -17,7 +33,6 @@ unsigned int NbEnfants(Competence *noeud);
unsigned int hauteur(Competence *noeud); unsigned int hauteur(Competence *noeud);
Competence* construire_arbre_competence(Competence* a); Competence* construire_arbre_competence(Competence* a);
int rafraichir_competences(Competence * a); int rafraichir_competences(Competence * a);
......
...@@ -150,5 +150,8 @@ Pack_A.GUI_Package = GUI_Pack; ...@@ -150,5 +150,8 @@ Pack_A.GUI_Package = GUI_Pack;
Test_Competences(); Test_Competences();
return 0; return 0;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment