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

Ajout de Terrains.c/.h, modifications de structures. L'écriture dans le...

Ajout de Terrains.c/.h, modifications de structures. L'écriture dans le boolean de terrain ne fonctionne pas malgré le typedef.
parent ed1636bc
No related branches found
No related tags found
No related merge requests found
Pipeline #
<?xml version="1.0" encoding="UTF-8"?>
<Terrains>
<Terrain id="G_PLAIN" name="Plaine" FR="1" FRS="2" PDR="3" Desc="Plaine de bon sens">
</Terrain>
<Terrain id="G_RIVER" name="Riviere" FR="4" FRS="5" PDR="6" Desc="River, arrete de river">
</Terrain>
<Terrain id="G_FOREST" name="Foret" FR="7" FRS="8" PDR="9" Desc="Le frère de Fopart">
</Terrain>
<Terrain id="G_MOUNT" name="Montagne" FR="10" FRS="11" PDR="12" Desc="Montagne est plus haut que tontagne">
</Terrain>
</Terrains>
\ No newline at end of file
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "structures.h" #include "structures.h"
#include "case.h"
#include "personnage.h" #include "personnage.h"
#include "deplacements.h" #include "deplacements.h"
/* Procdure de remplissage des cases partir d'un fichier XML */
Case* Librairie_Cases(const char *filename){
return Remplir_Cases_log(filename); Case * init_case(Case * c,int x, int y, Terrain *t){
}
/* Generation d'un fichier log decrivant le deroulement de la procedure d'aquisition des cases */
Case* Remplir_Cases_log(const char *filename)
{
FILE* Cases_log = NULL;
Cases_log = fopen("Cases_XML_log", "w");
if (Cases_log != NULL)
{
fprintf(Cases_log,"Fichier decrivant le deroulement de la procedure d'aquisition des Cases\n\n");
return Remplir_Cases(Cases_log, filename);
fclose(Cases_log);
}
else
{
fprintf(stderr,"Impossible d'ouvrir le fichier Cases_XML_log");
return 0;
}
}
Case * init_case(Case * c,int x, int y, Type_Terrain *t){
c->coord_x=x; c->coord_x=x;
c->coord_y=y; c->coord_y=y;
c->terrain=t; c->terrain=t;
...@@ -69,7 +39,7 @@ void marquer_libre(Case *c){ ...@@ -69,7 +39,7 @@ void marquer_libre(Case *c){
c->occupee=faux; c->occupee=faux;
} }
Type_Terrain* get_terrain(Case *c){ Terrain* get_terrain(Case *c){
if (c->terrain==NULL){ if (c->terrain==NULL){
fprintf(stderr,"pas de terrain"); fprintf(stderr,"pas de terrain");
} }
......
#ifndef CASE_H_INCLUDED #ifndef CASE_H_INCLUDED
#define CASE_H_INCLUDED #define CASE_H_INCLUDED
#include "CasesXML.h"
#include "structures.h" #include "structures.h"
Case* Librairie_Cases(const char *filename); Case* Librairie_Cases(const char *filename);
...@@ -9,7 +8,7 @@ Case* Librairie_Cases(const char *filename); ...@@ -9,7 +8,7 @@ Case* Librairie_Cases(const char *filename);
Case* Remplir_Cases_log(const char *filename); Case* Remplir_Cases_log(const char *filename);
Case* init_case(Case *c,int x, int y, Type_Terrain *t); Case* init_case(Case *c,int x, int y, Terrain *t);
int get_x(Case *c); int get_x(Case *c);
...@@ -17,9 +16,9 @@ int get_y(Case *c); ...@@ -17,9 +16,9 @@ int get_y(Case *c);
boolean est_occupee(Case *c); boolean est_occupee(Case *c);
Type_Terrain * init_terrain(Type_Terrain * t, char * n, boolean f, unsigned short int PD); Terrain * init_terrain(Terrain * t, char * n, boolean f, unsigned short int PD);
boolean terrain_franchissable(Type_Terrain *t); boolean terrain_franchissable(Terrain *t);
boolean case_franchissable(Case *c); boolean case_franchissable(Case *c);
...@@ -27,7 +26,7 @@ void marquer_occupee(Case *c); ...@@ -27,7 +26,7 @@ void marquer_occupee(Case *c);
void marquer_libre(Case *c); void marquer_libre(Case *c);
Type_Terrain* get_terrain(Case *c); Terrain* get_terrain(Case *c);
int init_carte(Carte* c,unsigned short int largeur, unsigned short int hauteur); int init_carte(Carte* c,unsigned short int largeur, unsigned short int hauteur);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#define CLASSE_H_INCLUDED #define CLASSE_H_INCLUDED
#include "structures.h" #include "structures.h"
/*#include "ClassesXML.h"*/ #include "ClassesXML.h"
Classe* Librairie_Classes(const char *filename); Classe* Librairie_Classes(const char *filename);
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "structures.h" #include "structures.h"
#include "classe.h" #include "classe.h"
#include "case.h" #include "case.h"
#include "terrain.h"
int init_jeu(){ /* cre les diffrents types de terrains, de classes et d'attaques en lisant dans un fichier */ int init_jeu(){ /* cre les diffrents types de terrains, de classes et d'attaques en lisant dans un fichier */
FILE *fichier; FILE *fichier;
...@@ -16,7 +17,7 @@ int init_jeu(){ /* cr ...@@ -16,7 +17,7 @@ int init_jeu(){ /* cr
int main() int main()
{ {
/* --------------------------- Test de lecture XML ------------------------------------------------- */ /* --------------------------- Test de lecture XML Classes ------------------------------------------------- */
/* /*
int i = 0; int i = 0;
printf("Test compilation"); printf("Test compilation");
...@@ -29,6 +30,23 @@ int main() ...@@ -29,6 +30,23 @@ int main()
*/ */
/* --------------------------- Test de lecture XML Cases ------------------------------------------------- */
Librairie_Terrains("Terrains.xml");
/*
int i = 0;
printf("Test compilation");
for(i=0;i<1;i++){
printf("\nPD_requis %d vaut: %s",i,Remplir_Terrains("Terrains.xml")[i].PD_requis);
printf("\nFR %d vaut : %d",i,Remplir_Classes_log("Terrains.xml")[i].PV_max);
printf("\nFRS %d vaut: %d",i,Remplir_Classes_log("Terrains.xml")[i].mana_max);
printf("\nPDR %d vaut: %d\n",i,Remplir_Classes_log("Terrains.xml")[i].points_deplacement_max);
}
*/
return 0; return 0;
} }
...@@ -35,12 +35,12 @@ typedef enum {faux, vrai} boolean; ...@@ -35,12 +35,12 @@ typedef enum {faux, vrai} boolean;
/*! \struct Type_terrain structures.h /*! \struct Type_terrain structures.h
* \brief Definition de la structure Type_terrain * \brief Definition de la structure Type_terrain
*/ */
typedef struct Type_Terrain{ typedef struct Terrain{
char nomTerrain[TAILLE_NOMS];/*!< Nom du terrain. */ char nomTerrain[1];/*!< Nom du terrain. */
boolean franchissable;/*!< Le terrain est franchissable ou non par un personnage. */ boolean franchissable;/*!< Le terrain est franchissable ou non par un personnage. */
boolean franchissable_sorts;/*!< Le terrain est franchissable ou non par un sort. */ boolean franchissable_sorts;/*!< Le terrain est franchissable ou non par un sort. */
unsigned short int PD_requis;/*!< Nombre de PD requis pour traverser le terrain. */ unsigned short int PD_requis;/*!< Nombre de PD requis pour traverser le terrain. */
}Type_Terrain; }Terrain;
/*! \struct Case structures.h /*! \struct Case structures.h
* \brief Definition de la structure Case * \brief Definition de la structure Case
...@@ -48,7 +48,7 @@ typedef struct Type_Terrain{ ...@@ -48,7 +48,7 @@ typedef struct Type_Terrain{
typedef struct Case{ typedef struct Case{
unsigned short int coord_x; /*!< Abscisse de la case*/ unsigned short int coord_x; /*!< Abscisse de la case*/
unsigned short int coord_y; /*!< Ordonnee de la case*/ unsigned short int coord_y; /*!< Ordonnee de la case*/
Type_Terrain * terrain; /*!< Le type de terrain de la case*/ Terrain * terrain; /*!< Le type de terrain de la case*/
boolean occupee; /*!< La case est occupee ou non par un personnage*/ boolean occupee; /*!< La case est occupee ou non par un personnage*/
} Case; } Case;
......
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "structures.h" #include "terrain.h"
#include "case.h"
#include "personnage.h"
#include "deplacements.h"
boolean terrain_franchissable(Type_Terrain *t){
/* Procdure de remplissage des cases partir d'un fichier XML */
Terrain* Librairie_Terrains(const char *filename)
{
return Remplir_Terrains_log(filename);
}
/* Generation d'un fichier log decrivant le deroulement de la procedure d'aquisition des terrains */
Terrain* Remplir_Terrains_log(const char *filename)
{
FILE* Terrains_log = NULL;
Terrains_log = fopen("Terrains_XML_log", "w");
if (Terrains_log != NULL)
{
fprintf(Terrains_log,"Fichier decrivant le deroulement de la procedure d'aquisition des Terrains\n\n");
return Remplir_Terrains(Terrains_log, filename);
fclose(Terrains_log);
}
else
{
fprintf(stderr,"Impossible d'ouvrir le fichier Terrains_XML_log");
return 0;
}
}
boolean terrain_franchissable(Terrain *t){
return t->franchissable; return t->franchissable;
} }
Type_Terrain * init_terrain(Type_Terrain * t, char * n, boolean f, unsigned short int PD){ Terrain * init_terrain(Terrain * t, char * n, boolean f, unsigned short int PD){
t->franchissable=f; t->franchissable=f;
strncpy(n,t->nomTerrain,TAILLE_NOMS-1); strncpy(n,t->nomTerrain,TAILLE_NOMS-1);
t->nomTerrain[TAILLE_NOMS-1]='/0'; t->nomTerrain[0]='/0';
t->PD_requis=PD; t->PD_requis=PD;
return t; return t;
} }
#ifndef CLASSE_H_INCLUDED
#define CLASSE_H_INCLUDED
#include "structures.h"
#include "personnage.h"
#include "deplacements.h"
#include "roxml.h"
#include "TerrainsXML.h"
Terrain* Librairie_Terrains(const char *filename);
Terrain* Remplir_Terrains_log(const char *filename);
boolean terrain_franchissable(Terrain *t);
Terrain * init_terrain(Terrain * t, char * n, boolean f, unsigned short int PD);
#endif // CLASSE_H_INCLUDED
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