Skip to content
Snippets Groups Projects
Commit 79090066 authored by Sanchez Alexandre's avatar Sanchez Alexandre
Browse files

[Allocation dynamique] Aide à Romain Jegat

parent 10428e6d
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -2,7 +2,7 @@
<Arbres>
<Arbre id="S_MAGE">
<Arbre id="S_MAGE" nom="Creer Mage" prix="1">
<Competence_E1 id="S_MAGE_1" nom="Creer Mage" prix="1">
<Competence_E2 id="S_MAGE_11" nom="Instinct de survie" prix="1">
<Competence_E3 id="S_MAGE_111" nom="Echo" prix="1">
......@@ -27,22 +27,22 @@
</Competence_E1>
</Arbre>
<Arbre id="S_WAR">
<Arbre id="S_WAR" nom="Creer Mage" prix="1">
</Arbre>
<Arbre id="S_HEAL">
<Arbre id="S_HEAL" nom="Creer Mage" prix="1">
</Arbre>
<Arbre id="S_ROGUE">
<Arbre id="S_ROGUE" nom="Creer Mage" prix="1">
</Arbre>
<Arbre id="S_ARCHER">
<Arbre id="S_ARCHER" nom="Creer Mage" prix="1">
</Arbre>
......
......@@ -30,12 +30,10 @@ typedef struct Competence{
*
* \return Un entier.
*/
Competence* init_Competence(Competence *noeud)
Competence* init_Competence()
{
noeud = malloc(sizeof(Competence));
Competence* 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;
......@@ -79,10 +77,9 @@ int set_comp_enfant(Competence *parent, Competence *nouvel_enfant) /* Ne foncti
{
if(estVide(parent))
{
init_Competence(parent->enfant);
parent->enfant = nouvel_enfant;
}
else // Solution cracra mais ça ne marche pas autrement (avec un while) //
else
{
set_comp_frere(parent->enfant, nouvel_enfant);
}
......@@ -97,7 +94,6 @@ int set_comp_frere(Competence *noeud, Competence *nouveau_frere)
}
else
{
init_Competence(noeud->frere);
noeud->frere = nouveau_frere;
}
return 0;
......@@ -234,146 +230,66 @@ Effet_Competence * get_effet(Competence *c) /* Renvoie l'effet d'une compe
return c->effet;
}
int Extraire_Comp_Tree(node_t *arbreXML, Competence* arbreComp)
{
int nb_Comp=0, i=0;
nb_Comp = roxml_get_chld_nb(arbreXML);
for(i=0; i<nb_Comp; i++)
{
node_t *brancheXML;
Competence *comp = init_Competence();
brancheXML = roxml_get_chld(arbreXML, NULL, i);
printf("--> Extraction de la competence %d sur %d \n", i+1, nb_Comp);
set_comp_name(comp, roxml_get_content(roxml_get_attr(brancheXML,"nom",0),NULL,0,NULL));
set_comp_id(comp, roxml_get_content(roxml_get_attr(brancheXML,"id",0),NULL,0,NULL));
set_comp_prix(comp, atoi(roxml_get_content(roxml_get_attr(brancheXML,"prix",0),NULL,0,NULL)));
printf("La competence actuelle a pour nom : %s\n", comp->nomComp);
printf("La competence actuelle a pour id : %s\n", comp->id);
printf("La competence actuelle a pour prix : %d\n", comp->prix_competence);
Extraire_Comp_Tree(brancheXML, comp);
set_comp_enfant(arbreComp, comp);
}
return 0;
}
Competence* Extraire_Arbres(char *filename)
{
node_t *rootXML, *Arbres;
int nb_Arbres=0, i_0=0;
Competence *Arbre_Competences = init_Competence();
rootXML = roxml_load_doc(filename);
Arbres = roxml_get_chld(rootXML,"Arbres",0);
nb_Arbres = roxml_get_chld_nb(Arbres);
printf("On a %d arbres de competences \n", nb_Arbres);
/* ---------------------------------------------------------------------------------------------- */
/* Extraction des arbres */
/* ---------------------------------------------------------------------------------------------- */
Extraire_Comp_Tree(Arbres, Arbre_Competences);
for(i_0=0; i_0<nb_Arbres; i_0++)
{
node_t *ArbreXML_Actuel = roxml_get_chld(Arbres, NULL, i_0);
Competence *Arbre_Actuel;
int nb_Comp1=0, i_1=0;
Arbre_Actuel = init_Competence(Arbre_Actuel);
nb_Comp1 = roxml_get_chld_nb(ArbreXML_Actuel);
printf("L'arbre %d contient %d competences de niveau 1\n",i_0, nb_Comp1);
set_comp_name(Arbre_Actuel,roxml_get_content(roxml_get_attr(ArbreXML_Actuel,"id",0),NULL,0,NULL));
printf("\nL'arbre actuel a pour nom : %s\n", Arbre_Actuel->nomComp);
/* ---------------------------------------------------------------------------------------------- */
/* Extraction des competences 1 */
/* ---------------------------------------------------------------------------------------------- */
for(i_1=0; i_1<nb_Comp1; i_1++)
{
node_t *CompetenceXML_1;
Competence *Competence_1;
int nb_Comp2=0, i_2=0;
Competence_1 = init_Competence(Competence_1);
CompetenceXML_1 = roxml_get_chld(ArbreXML_Actuel, NULL, i_1);
nb_Comp2 = roxml_get_chld_nb(CompetenceXML_1);
printf("La competence numero %d de niveau 1 contient %d competences de niveau 2\n",i_1+1,nb_Comp2);
set_comp_name(Competence_1,roxml_get_content(roxml_get_attr(CompetenceXML_1,"nom",0),NULL,0,NULL));
set_comp_id(Competence_1,roxml_get_content(roxml_get_attr(CompetenceXML_1,"id",0),NULL,0,NULL));
set_comp_prix(Competence_1,roxml_get_content(roxml_get_attr(CompetenceXML_1,"prix",0),NULL,0,NULL));
printf("La competence_1 actuelle a pour nom : %s\n", Competence_1->nomComp);
printf("La competence_1 actuelle a pour id : %s\n", Competence_1->id);
printf("La competence_1 actuelle a pour prix : %s\n", Competence_1->prix_competence);
for(i_2=0; i_2<nb_Comp2; i_2++)
{
node_t *CompetenceXML_2;
Competence *Competence_2;
int nb_Comp3=0, i_3=0;
Competence_2 = init_Competence(Competence_2);
CompetenceXML_2 = roxml_get_chld(CompetenceXML_1, NULL, i_2);
nb_Comp3 = roxml_get_chld_nb(CompetenceXML_2);
printf("La competence numero %d de niveau 2 contient %d competences de niveau 3\n",i_2+1,nb_Comp3);
set_comp_name(Competence_2,roxml_get_content(roxml_get_attr(CompetenceXML_2,"nom",0),NULL,0,NULL));
set_comp_id(Competence_2,roxml_get_content(roxml_get_attr(CompetenceXML_2,"id",0),NULL,0,NULL));
set_comp_prix(Competence_2,roxml_get_content(roxml_get_attr(CompetenceXML_2,"prix",0),NULL,0,NULL));
printf("La competence_2 actuelle a pour nom : %s\n", Competence_2->nomComp);
printf("La competence_2 actuelle a pour id : %s\n", Competence_2->id);
printf("La competence_2 actuelle a pour prix : %s\n", Competence_2->prix_competence);
for(i_3=0; i_3<nb_Comp3; i_3++)
{
node_t *CompetenceXML_3;
Competence *Competence_3;
int nb_Comp4=0, i_4=0;
Competence_3 = init_Competence(Competence_3);
CompetenceXML_3 = roxml_get_chld(CompetenceXML_2, NULL, i_3);
nb_Comp4 = roxml_get_chld_nb(CompetenceXML_3);
printf("La competence numero %d de niveau 3 contient %d competences de niveau 4\n",i_3+1,nb_Comp4);
set_comp_name(Competence_3,roxml_get_content(roxml_get_attr(CompetenceXML_3,"nom",0),NULL,0,NULL));
set_comp_id(Competence_3,roxml_get_content(roxml_get_attr(CompetenceXML_3,"id",0),NULL,0,NULL));
set_comp_prix(Competence_3,roxml_get_content(roxml_get_attr(CompetenceXML_3,"prix",0),NULL,0,NULL));
printf("La competence_3 actuelle a pour nom : %s\n", Competence_3->nomComp);
printf("La competence_3 actuelle a pour id : %s\n", Competence_3->id);
printf("La competence_3 actuelle a pour prix : %s\n", Competence_3->prix_competence);
for(i_4=0; i_4<nb_Comp4; i_4++)
{
node_t *CompetenceXML_4;
Competence *Competence_4;
Competence_4 = init_Competence(Competence_4);
CompetenceXML_4 = roxml_get_chld(CompetenceXML_3, NULL, i_4);
set_comp_name(Competence_4,roxml_get_content(roxml_get_attr(CompetenceXML_4,"nom",0),NULL,0,NULL));
set_comp_id(Competence_4,roxml_get_content(roxml_get_attr(CompetenceXML_4,"id",0),NULL,0,NULL));
set_comp_prix(Competence_4,roxml_get_content(roxml_get_attr(CompetenceXML_4,"prix",0),NULL,0,NULL));
printf("La competence_4 actuelle a pour nom : %s\n", Competence_4->nomComp);
printf("La competence_4 actuelle a pour id : %s\n", Competence_4->id);
printf("La competence_4 actuelle a pour prix : %s\n", Competence_4->prix_competence);
/* La competence 4 devient un enfant de la competence 3 */
set_comp_enfant(Competence_3, Competence_4); //FAIT PLANTER A PARTIR DE 3 NIVEAUX DE REMPLISSAGE
}
/* La competence 3 devient un enfant de la competence 2 */
//set_comp_enfant(Competence_2, Competence_3);
}
/* La competence 2 devient un enfant de la competence 1 */
set_comp_enfant(Competence_1, Competence_2);
}
/* La competence 1 devient un enfant du premier noeud */
//set_comp_enfant(Arbre_Actuel, Competence_1);
}
}
return 0;
return Arbre_Competences;
}
int Test_Competences()
{
int Test_Competences()
{
int ret = 0;
printf("Debut Test Competences\n");
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);
Comp_Test_Parent = init_Competence();
Comp_Test_Enfant = init_Competence();
Comp_Test_Petit_Enfant = init_Competence();
Comp_Test_Frere_Enfant = init_Competence();
if(estVide(Comp_Test_Parent)) /* Test de estVide() */
{
......
......@@ -9,7 +9,7 @@
/* Fonctions */
Competence* init_Competence(Competence *noeud);
Competence* init_Competence();
/* Fonctions Set */
......
......@@ -87,7 +87,7 @@ int main()
//init_jeu("../resources/Init_jeu.xml");
char *Map_ANCIENNE_VERSION = ExtraireCarte(4);
char *Map_ANCIENNE_VERSION = ExtraireCarte(1);
//printf("Map en version texte : %s\n", Map_A);
......@@ -100,12 +100,13 @@ Game_Package Pack_A = Construire_Package();
Classe* Classes_Pack = Librairie_Classes("../resources/Classes.xml");
Terrain* Terrains_Pack = Librairie_Terrains("../resources/Terrains.xml");
Skins_GUI* GUI_Pack = Get_Skins_GUI("../resources/GUI.xml");
/*Competence* Competences_Pack = */Extraire_Arbres("../resources/Competences.xml");
Competence* Competences_Pack = Extraire_Arbres("../resources/Competences.xml");
Pack_A.Classes_Package = Classes_Pack;
Pack_A.Terrains_Package = Terrains_Pack;
Pack_A.GUI_Package = GUI_Pack;
Pack_A.Competences_Package = Competences_Pack;
/* -------------------------------------*/
/* Comment utiliser le package : */
......@@ -120,7 +121,7 @@ Pack_A.GUI_Package = GUI_Pack;
/* -------------------------------------*/
/* -------------------------------------*/
main_SDL(Map_ANCIENNE_VERSION);
//main_SDL(Map_ANCIENNE_VERSION);
//SDL_bis();
//Test_Competences();
......
......@@ -237,6 +237,7 @@ typedef struct Game_Package{
Terrain* Terrains_Package;
Skins_GUI* GUI_Package;
Carte_A* Cartes_Package;
Competence* Competences_Package;
}Game_Package;
......
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