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{
*/
/*!
* \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;
......
......@@ -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);
......
......@@ -150,5 +150,8 @@ Pack_A.GUI_Package = GUI_Pack;
Test_Competences();
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