From acaf59b0147d6305c8b99fdc33c213a54cf5f450 Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Sun, 3 Apr 2016 14:54:51 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20lecture=20de=20l'ID,=20modifi?= =?UTF-8?q?cation=20de=20structure=20Classe,=20r=C3=A9tablissement=20de=20?= =?UTF-8?q?main.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ClassesXML.c | 8 +++++--- src/main.c | 34 ++++++++++++++++++++++++++++++++++ src/structures.h | 6 +++--- 3 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 src/main.c diff --git a/src/ClassesXML.c b/src/ClassesXML.c index b25513f..b30eb32 100644 --- a/src/ClassesXML.c +++ b/src/ClassesXML.c @@ -1,9 +1,11 @@ #include <stdio.h> #include <stdlib.h> -#include <roxml.h> + #include "ClassesXML.h" + + Classe* Remplir_Classes(FILE* Classes_log, const char *filename) /* Remplit le tableau de classes à partir du fichier XML */ { @@ -30,8 +32,7 @@ Classe* Remplir_Classes(FILE* Classes_log, const char *filename) /* Remplit le t exit(EXIT_FAILURE); } fprintf(Classes_log,"1) Memoire allouee avec succes \n"); - fprintf(Classes_log,"La memoire allouee fait %d octets\n", ListeClasse); - fprintf(Classes_log,"Elle devrait faire %d octets\n",nb_classes * sizeof(Classe)); + fprintf(Classes_log,"La memoire allouee fait %d octets\n",nb_classes * sizeof(Classe)); /*--------------------------------------------------------------------------------------------------*/ @@ -81,6 +82,7 @@ Classe* Remplir_Classes(FILE* Classes_log, const char *filename) /* Remplit le t Classe_en_cours.PV_max=PV_int; Classe_en_cours.mana_max=PMM_int; Classe_en_cours.points_deplacement_max=PD_int; + strcpy(Classe_en_cours.nom, id_text); fprintf(Classes_log,"Insertion de la classe %d dans le tableau\n", i+1); diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..41330a2 --- /dev/null +++ b/src/main.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> +#include "structures.h" +#include "classe.h" +#include "case.h" + +int init_jeu(){ // crée les différents types de terrains, de classes et d'attaques en lisant dans un fichier + FILE *fichier; + fichier=fopen("../resources/fichier_init.txt","r"); + if (fichier==NULL){ + fprintf(stderr,"erreur dans l'ouverture du fichier"); + return 1; + } +} + + +int main() +{ +/* --------------------------- Test de lecture XML ------------------------------------------------- */ +/* + int i = 0; + printf("Test compilation"); + for(i=0;i<4;i++){ + printf("\nNom %d vaut: %s",i,Remplir_Classes_log("Classes.xml")[i].nom); + printf("\nPv %d vaut : %d",i,Remplir_Classes_log("Classes.xml")[i].PV_max); + printf("\nPM %d vaut: %d",i,Remplir_Classes_log("Classes.xml")[i].mana_max); + printf("\nPD %d vaut: %d\n",i,Remplir_Classes_log("Classes.xml")[i].points_deplacement_max); +} + +*/ + + +return 0; +} diff --git a/src/structures.h b/src/structures.h index 21a208c..782d390 100644 --- a/src/structures.h +++ b/src/structures.h @@ -35,7 +35,7 @@ typedef enum {faux, vrai} boolean; /*! \struct Type_terrain structures.h * \brief Definition de la structure Type_terrain */ -typedef struct { +typedef struct Type_Terrain{ char nomTerrain[TAILLE_NOMS];/*!< Nom du terrain. */ boolean franchissable;/*!< Le terrain est franchissable ou non par un personnage. */ boolean franchissable_sorts;/*!< Le terrain est franchissable ou non par un sort. */ @@ -62,7 +62,7 @@ typedef Case Carte[TAILLE_MAX_CARTE]; /*! \struct Effet structures.h * \brief Definition de la structure Personnage. */ -typedef struct { +typedef struct Effet{ unsigned int nb_tours_restants;/*!< Le nombre de tours restants avant que l'effet ne s'estompe*/ unsigned int valeur_degats_duree; /*!< Le nombre de degat de duree subit par tour*/ unsigned int valeur_soin_duree; /*!< Le nombre PV regeneres par tour*/ @@ -84,7 +84,7 @@ typedef struct Attaque{ * \brief Definition de la structure Classe. */ typedef struct Classe{ - char nom[TAILLE_NOMS]; /*!< Nom de la classe de taille TAILLE_NOMS*/ + char nom[1]; /*!< Nom de la classe de taille TAILLE_NOMS*/ Attaque* attaques; /*!< Les attaques disponibles pour la classe*/ unsigned short int points_deplacement_max; /*!< Les PD maximums accordés a la classe*/ unsigned short int PV_max; /*!< Les PV maximums accordés a la classe*/ -- GitLab