diff --git a/src/SDL_bis.c b/src/SDL_bis.c index 3e6758a5cf8e13e4fdad8b8ab5027f352a415ba8..7eceef1bbde9f417d713bc99e7914796ff007ba4 100644 --- a/src/SDL_bis.c +++ b/src/SDL_bis.c @@ -63,7 +63,7 @@ int SDL_bis() char nom_joueur1[15] = ""; fgets(nom_joueur1, sizeof(nom_joueur1), stdin); char nom_joueur2[15] = ""; - ajouter_joueurs(nom_joueur1,nom_joueur2, &etat); //a coder par colin + // ajouter_joueurs(nom_joueur1,nom_joueur2, &etat); //a coder par colin while(quitter==0) { diff --git a/src/competence.c b/src/competence.c index 6be30f55db177863422ebc39133d737a0bfd6f48..274942211a50604b7e1b18d19d280a8d8410a8e8 100644 --- a/src/competence.c +++ b/src/competence.c @@ -67,31 +67,25 @@ int estVide(Competence *c) int set_comp_enfant(Competence *parent, Competence *nouvel_enfant) /* Ne fonctionne pas */ { - if(estVide(parent)) { init_Competence(parent->enfant); parent->enfant = nouvel_enfant; } - else + else // Solution cracra mais ça ne marche pas autrement (avec un while) // { - init_Competence(parent->frere); - parent->frere = nouvel_enfant; - /* Ne fonctionne pas */ - /* - Competence *enfant_temp; - enfant_temp=init_Competence(enfant_temp); - enfant_temp = parent->enfant; - - while(enfant_temp!=NULL) + if(estVide(parent->enfant)) { - enfant_temp = enfant_temp->frere; + parent->enfant->frere = nouvel_enfant; + } + else if(estVide(parent->enfant->frere)) + { + parent->enfant->frere->frere = nouvel_enfant; + } + else if(estVide(parent->enfant->frere->frere)) + { + parent->enfant->frere->frere->frere = nouvel_enfant; } - enfant_temp->frere = nouvel_enfant; - - parent->enfant->frere = nouvel_enfant; - */ - } return 0; } @@ -146,7 +140,6 @@ int taille(Competence *noeud) return compteur; } - /*! * \fn unsigned int hauteur(Competence *noeud) * \brief La fonction indique la hauteur d'une competence dans l'arbre. @@ -172,8 +165,6 @@ unsigned int hauteur(Competence *noeud) } } - - /*! * \fn boolean est_connue(Competence *c) * \brief La fonction indique si une competence est connue ou non. @@ -209,8 +200,6 @@ unsigned int NbEnfants(Competence *noeud) return nb; } - - /*! * \fn boolean * est_complet(Competence *noeud) * \brief La fonction verifie si l'arbre est complet ou non. @@ -228,16 +217,11 @@ 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; @@ -265,12 +249,12 @@ Competence* Extraire_Arbres(char *filename) Competence *Arbre_Actuel; int nb_Comp1=0, i_1=0; - init_Competence(Arbre_Actuel); + 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("L'arbre actuel a pour nom : %s\n", Arbre_Actuel->nomComp); + printf("\nL'arbre actuel a pour nom : %s\n", Arbre_Actuel->nomComp); /* ---------------------------------------------------------------------------------------------- */ /* Extraction des competences 1 */ @@ -282,75 +266,143 @@ Competence* Extraire_Arbres(char *filename) Competence *Competence_1; int nb_Comp2=0, i_2=0; - init_Competence(Competence_1); + 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)); - for(i_2=0; i_2<nb_Comp1; i_2++) - { - } + 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); - /* La competence j devient un enfant de la competence i */ - set_comp_enfant(Arbre_Actuel, Competence_1); - printf("L'enfant est : %s\n", Arbre_Actuel->enfant->nomComp); + 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_3); + 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 + } + /* La competence 3 devient un enfant de la competence 2 */ + //set_comp_enfant(Competence_2, Competence_3); //FAIT PLANTER + } + /* 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; } -int Test_Competences() -{ - printf("Debut Test Competences\n"); + int Test_Competences() + { + printf("Debut Test Competences\n"); - Competence *Comp_Test_Parent, *Comp_Test_Enfant, *Comp_Test_Petit_Enfant, *Comp_Test_Frere_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); + 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"); - } + 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 */ + 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"); + set_comp_prix(Comp_Test_Parent, 4); + set_comp_name(Comp_Test_Parent, "Pepe"); + set_comp_id(Comp_Test_Parent, "ID_PE"); - printf("Le nom de parent est : %s\n", Comp_Test_Parent->nomComp); /* Vaut bien le nom */ + printf("Le nom de parent est : %s\n", Comp_Test_Parent->nomComp); /* Vaut bien le nom */ - 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"); + 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); - /* ---- */ + /* 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_comp_enfant(Comp_Test_Parent, Comp_Test_Enfant); /* Association Parent-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) */ + 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("\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->frere->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; + return 0; } diff --git a/src/main.c b/src/main.c index 7fc34629258d697d656ae3e8d38f400d0fca4fa7..81fb3bc63149c6cc304373c94f840c2854e3fd25 100644 --- a/src/main.c +++ b/src/main.c @@ -100,7 +100,7 @@ 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; @@ -112,18 +112,18 @@ Pack_A.GUI_Package = GUI_Pack; /* -------------------------------------*/ - printf("\nL'attaque 1 du mage est : %s\n",Pack_A.Classes_Package[0].attaques[2].nom); + /* printf("\nL'attaque 1 du mage est : %s\n",Pack_A.Classes_Package[0].attaques[2].nom); printf("Le nom du terrain 1 est : %s\n",Pack_A.Terrains_Package[0].nomTerrain); printf("L'adresse de la texture GUI 1 est : %s\n",Pack_A.GUI_Package[0].GUI_default); printf("La ligne 3 de la map 1 est : %s\n",Pack_A.Cartes_Package[0].lignes[2]); - +*/ /* -------------------------------------*/ /* -------------------------------------*/ //main_SDL(Map_ANCIENNE_VERSION); - SDL_bis(); + //SDL_bis(); - Test_Competences(); + //Test_Competences(); diff --git a/src/structures.h b/src/structures.h index 19b21ca7e3f44675b7a87b6fef3d22344c81926e..4c8578772f84df51182ac92a1deb970b1deb88dd 100644 --- a/src/structures.h +++ b/src/structures.h @@ -23,7 +23,7 @@ /*! \def TAILLE_MAX_LIGNE */ #define TAILLE_MAX_LIGNE 25 /*! \def TAILLE_ID */ -#define TAILLE_ID 10 +#define TAILLE_ID 20 /*! \def TAILLE_NOMS */ #define TAILLE_NOMS 25 /*! \def TAILLE_MAX_GROUPE */ @@ -222,6 +222,7 @@ typedef struct Carte_A{ } Carte_A; + /*! \struct Classe structures.h * \brief Definition de la structure Game_Package * sizeof(Classe) =