diff --git a/resources/Maps.xml b/resources/Maps.xml
new file mode 100644
index 0000000000000000000000000000000000000000..43b9e6ca855e1510141ef0784a92e2f7c01e408a
--- /dev/null
+++ b/resources/Maps.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Maps>
+
+<Map id="MAP_1" name="Comté de la sieste" desc="Cette map est so-mmeil" taille_lignes="10">
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+<Line>MFPPRRPPFM</Line>
+</Map>
+
+<Map id="MAP_2" name="Chasse au trésor" desc="Une map pour 2 joueurs qui rend fou !! " taille_lignes="10">
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+</Map>
+
+<Map id="MAP_3" name="Chasse au trésor" desc="Une map pour 2 joueurs qui rend fou !! " taille_lignes="10">
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+  <Line>MFPPRRPPFM</Line>
+</Map>
+
+</Maps>
diff --git a/src/carte.c b/src/carte.c
index b1d683dbff21cbac10aef173f053ec4852b4d192..de2807d1cd131f3a95209420b21f102049661f63 100644
--- a/src/carte.c
+++ b/src/carte.c
@@ -2,6 +2,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include "carte.h"
+#include "structures.h"
+#include <roxml.h>
 
 
 /*!
@@ -20,7 +22,7 @@ char* ExtraireCarte(int numero)
  * \fn Carte* LireCarte(int num)
  * \brief La fonction recupere la n-ieme carte dans un fichier et renvoie un pointeur sur la carte cree
  *
- * \return Un pointeur sur une tableau de lettres.
+ * \return Un pointeur sur une tableau de cartes.
  */
 char* LireCarte(const char *filename, int num)
 {
@@ -64,17 +66,85 @@ char* LireCarte(const char *filename, int num)
         fgetc(file_map);
     }
 
-/* Test Tableau
+    /* Test Tableau
 
-    for(j=0; j<nb_lignes*nb_colonnes; j++)
-    {
-        printf("La valeur %d du tableau vaut : %c\n",j,TableauCarte[j]);
-    }
+        for(j=0; j<nb_lignes*nb_colonnes; j++)
+        {
+            printf("La valeur %d du tableau vaut : %c\n",j,TableauCarte[j]);
+        }
 
-    fclose(file_map);
-*/
+        fclose(file_map);
+    */
     return TableauCarte;
 }
 
 
+Carte_A* ExtraireCartesXML(const char *filename)
+{
+    node_t *rootXML, *Maps;
+    int nb_Maps=0, i=0;
+    rootXML = roxml_load_doc(filename);
+    Maps = roxml_get_chld(rootXML, NULL, 0);
+
+    nb_Maps = roxml_get_chld_nb(Maps);
+    //printf("Il y a %d maps\n", nb_Maps);
+
+    Carte_A* Tableau_Cartes = malloc(nb_Maps * sizeof(Carte_A));
+
+    /*-------------------------------------------------------------------------------------------------------------------*/
+    /* Aquisition des cartes */
+    /*-------------------------------------------------------------------------------------------------------------------*/
+
+    for(i=0; i<nb_Maps; i++)
+    {
+        int j=0, nb_lignes=0, taille_lignes=0;
+        char *id_text, *name_text, *desc_text, *lignes_text;
+        node_t *Map_Actuelle;
+        Map_Actuelle = roxml_get_chld(Maps,NULL,i);
+
+        id_text = roxml_get_content(roxml_get_attr(Map_Actuelle, "id", 0), NULL, 0, NULL);
+        name_text = roxml_get_content(roxml_get_attr(Map_Actuelle, "name", 0), NULL, 0, NULL);
+        desc_text = roxml_get_content(roxml_get_attr(Map_Actuelle, "desc", 0), NULL, 0, NULL);
+
+        //taille_lignes = atoi(roxml_get_content(roxml_get_attr(Map_Actuelle, "taille_lignes", 0), NULL, 0, NULL));
+        //printf("Les lignes font %d de long\n", taille_lignes);
+
+        //nb_lignes = roxml_get_chld_nb(Map_Actuelle);
+        //printf("La carte contient %d lignes\n", nb_lignes);
+
+        Carte_A Carte_Actuelle;
+
+        strcpy(Carte_Actuelle.id, id_text);
+        strcpy(Carte_Actuelle.nom, name_text);
+        strcpy(Carte_Actuelle.desc, desc_text);
+/*
+        printf("L'ID est :%s\n\n", Carte_Actuelle.id);
+        printf("Le nom est :%s\n\n", Carte_Actuelle.nom);
+        printf("La desc est :%s\n\n", Carte_Actuelle.desc);
+*/
+        /*--------------------------------------------------------------------------------------------------------------*/
+        /* Aquisition des lignes de la carte */
+        /*--------------------------------------------------------------------------------------------------------------*/
+
+        for(j=0; j<16 /*nb_lignes*/ ; j++)
+        {
+            node_t* Ligne_Actuelle;
+            Ligne_Actuelle = roxml_get_chld(Map_Actuelle, NULL, j);
+
+            char sequence_ligne[9];
+            roxml_get_content(Ligne_Actuelle, sequence_ligne, 50, NULL);
+
+            //printf("Sequence_Ligne vaut : %s\n", sequence_ligne);
+
+            strcpy(Carte_Actuelle.lignes[j], sequence_ligne);
+
+            //printf("La ligne %d vaut : %s\n",j+1, Carte_Actuelle.lignes[j]);
+        }
+
+        Tableau_Cartes[i] = Carte_Actuelle;
+    }
+
+    return Tableau_Cartes;
+}
+
 
diff --git a/src/carte.h b/src/carte.h
index abbe315a3df089a09fe7660b8c072a768175785d..46b24768fb8138f71ef3e539d04afe58e0357dcb 100644
--- a/src/carte.h
+++ b/src/carte.h
@@ -3,15 +3,17 @@
 * \brief Fichier contenant les signatures des fonctions liees a la structure carte.
 */
 
-char* ExtraireCarte(int numero);
-
-char* LireCarte(const char *filename, int num);
-
 #ifndef CARTE_H_INCLUDED
 #define CARTE_H_INCLUDED
 
 #include "structures.h"
 
+char* ExtraireCarte(int numero);
+
+Carte_A* ExtraireCartesXML(const char *filename);
+
+char* LireCarte(const char *filename, int num);
+
 
 
 #endif // CARTE_H_INCLUDED
diff --git a/src/main.c b/src/main.c
index 95937911188531844ed9fe392f3c11069d1ec9b7..d3bac46f311036a0cf4eb6e45b6d5ba7bf336179 100644
--- a/src/main.c
+++ b/src/main.c
@@ -95,10 +95,12 @@ Game_Package 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");
+    Carte_A* Map_Pack = ExtraireCartesXML("../resources/Maps.xml");
 
     Pack.Classes_Package = Classes_Pack;
     Pack.Terrains_Package = Terrains_Pack;
     Pack.GUI_Package = GUI_Pack;
+    Pack.Cartes_Package = Map_Pack;
 
     return Pack;
 }
@@ -109,17 +111,23 @@ int main()
 
 //init_jeu("../resources/Init_jeu.xml");
 
-    char *Map_A = ExtraireCarte(4);
-    printf("Map en version texte : %s\n", Map_A);
+    char *Map_ANCIENNE_VERSION = ExtraireCarte(4);
+    //printf("Map en version texte : %s\n", Map_A);
 
 
+    /* -------------------------------------*/
+    /* Creation du package : */
+    /* -------------------------------------*/
+
     Game_Package Pack_A = Construire_Package();
 
     /* -------------------------------------*/
     /* Comment utiliser le package : */
     /* -------------------------------------*/
 
-      printf("L'attaque 1 du mage est : %s\n",Pack_A.Classes_Package[0].attaques[2].nom);
+
+    printf("L'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]);
diff --git a/src/structures.h b/src/structures.h
index 779b66d75be945054889f1e795b9a1ea0d886238..ee38b4ddf56a0109187636a3b3cca7c71ab2c276 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -112,7 +112,7 @@ typedef struct Attaque{
     char nom[TAILLE_NOMS]; /*!< Nom de l'attaque de taille TAILLE_NOMS*/
     unsigned short int mana;
     unsigned short int portee; /*!< Portee en nombre de cases de l'attaque*/
-    Effet effets[5]; /*!< Tableau des effets appliques par l'attaque, cela comprend les dégâts de duree*/
+    Effet effets[5]; /*!< Tableau des effets appliques par l'attaque, cela comprend les dégâts de duree*/
 } Attaque;
 
 /*! \struct Classe structures.h
@@ -122,9 +122,9 @@ typedef struct Attaque{
 typedef struct Classe{
     char nom[25]; /*!< Nom de la classe de taille TAILLE_NOMS*/
     Attaque attaques[5]; /*!< 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*/
-    unsigned short int mana_max; /*!< Le mana maximum accordé a 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*/
+    unsigned short int mana_max; /*!< Le mana maximum accordé a la classe*/
     Skins_Charac skins;
 }Classe;
 
@@ -168,6 +168,14 @@ typedef struct Effet_Competence{
 } Effet_Competence;
 
 
+typedef struct Carte_A{
+    char id[TAILLE_ID];
+    char nom[50];
+    char desc[100];
+    char lignes[17][11];
+} Carte_A;
+
+
 /*! \struct Classe structures.h
  * \brief Definition de la structure Game_Package
  * sizeof(Classe) =
@@ -176,6 +184,7 @@ typedef struct Game_Package{
     Classe* Classes_Package;
     Terrain* Terrains_Package;
     Skins_GUI* GUI_Package;
+    Carte_A* Cartes_Package;
 }Game_Package;
 
 
@@ -189,7 +198,7 @@ typedef struct Game_Package{
  */
  typedef struct Joueur{
     char nomJoueur[TAILLE_NOMS]; /*!< Le nom identifiant le Joueur*/
-    Personnage * groupe[TAILLE_MAX_GROUPE];/*!< Les personnages du joueur qui prennent part à la partie.*/
+    Personnage * groupe[TAILLE_MAX_GROUPE];/*!< Les personnages du joueur qui prennent part à la partie.*/
  } Joueur;
 
  /*! \struct NodeJoueur structures.h
@@ -221,12 +230,13 @@ typedef struct Game_Package{
  * \brief Definition de la structure Partie
  *
  * Contient les informations concernant la partie telles que la liste des joueurs participants
- * le nombre de tours. Cette structure permet de gérer les tours
+ * le nombre de tours. Cette structure permet de gérer les tours
  * Peut eventuellement contenir l'information Carte si c'est utile.
  * sizeof(Partie) = 12 octets
  */
- typedef struct Partie{
-    ListJoueur * participants; /*!< La liste de joueurs prennant parts à la partie*/
+
+typedef struct Partie{
+    ListJoueur * participants; /*!< La liste de joueurs prennant parts à la partie*/
     int nbTours; /*!<Le nombre de tours actuel*/
     Carte * c; /*!<La Carte associee a la Partie*/
  }Partie;