diff --git a/src/controleur.c b/src/controleur.c
index 65ec869ec50f856f0ce5a1d15847cebb6de988a5..2dfdd4840f55b7b14cddb64f35858c2f3a00299e 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -13,6 +13,7 @@
 #include "personnage.h"
 #include "classe.h"
 #include "gamePackage.h"
+#include "roxml.h"
 
 Partie * partieGlobale;
 Game_Package packGlobal;
@@ -27,7 +28,7 @@ void initJeu(){
 }
 
 /*!
- * \fn void ajouterUnJoueur(char * nomDuJoueur, Et)
+ * \fn void ajouterUnJoueur(char * nomDuJoueur, EtatsJeu * etat)
  * \brief Fonction ajoutant un Joueur à la Partie et faisant passer la partie à l'état suivant.
  *        Si le joueur n'a pas correctement été ajouté, l'état reste le même.
  *
@@ -49,6 +50,56 @@ void initJeu(){
     }
  }
 
+ /*!
+ * \fn char ** obtenirNomsClasses()
+ * \brief Fonction renvoyant un tableau de chaine de caractères contenant les noms des Classes.
+ *        L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis
+ *        dans le fichier XML.
+ *
+ * \return un tableau de chaine de charactères (char**).
+ */
+ char ** obtenirNomsClasses(){
+    int i;
+    //Allocation du tableau contenant les chaines de charactères
+    char ** tabNomClasses = malloc((getNbClasses(packGlobal))*sizeof(char *));
+    for(i=0;i<getNbClasses(packGlobal);i++){
+        tabNomClasses[i]= malloc(TAILLE_NOMS*sizeof(char));
+    }
+
+    //Copie des noms de classes dans le tableau
+    for(i=0;i<getNbClasses(packGlobal);i++){
+        strncpy(tabNomClasses[i],packGlobal.Classes_Package[i].nom, TAILLE_NOMS);
+    }
+    return tabNomClasses;
+ }
+
+  /*!
+ * \fn char ** obtenirSkinsClasses()
+ * \brief Fonction renvoyant un tableau de chaine de caractères contenant le chemin vers les Skins des Classes.
+ *        L'ordre et l'index des noms dans le tableau correspond à l'ordre dans lequel ils sont définis
+ *        dans le fichier XML.
+ *        Ici le chemin du Skin renvoyé est celui du "default".
+ *
+ * \return un tableau de chaine de charactères (char**).
+ */
+ char ** obtenirSkinsClasses(){
+    int i;
+    //Allocation du tableau contenant les chaines de charactères
+    char ** tabSkinsClasses = malloc((getNbClasses(packGlobal))*sizeof(char *));
+    for(i=0;i<getNbClasses(packGlobal);i++){
+        tabSkinsClasses[i]= malloc(TAILLE_CHEMIN*sizeof(char));
+    }
+        //Copie des chemin des skins dans le tableau
+    for(i=0;i<getNbClasses(packGlobal);i++){
+        strncpy(tabSkinsClasses[i],packGlobal.Classes_Package[i].skins.charac_default, TAILLE_CHEMIN);
+    }
+    return tabSkinsClasses;
+ }
+
+
+
+
+
 
 
 
diff --git a/src/controleur.h b/src/controleur.h
index c14fa45f19ab68bff8db563297a9b1ab3c1e8359..8701d7139e7af0a3b1d8385a1ea8971380192bfb 100644
--- a/src/controleur.h
+++ b/src/controleur.h
@@ -10,5 +10,10 @@
 
 void initJeu();
 
+void ajouterUnJoueur(char * nomDuJoueur, EtatsJeu * etat);
+
+char ** obtenirNomsClasses();
+char ** obtenirSkinsClasses();
+
 #endif // CONTROLEUR_H
 
diff --git a/src/gamePackage.c b/src/gamePackage.c
index 7fdfcbd40b1c304e4781761e223eb797b70ae3d0..1605f3ecc3b9e760acc4ce5da193241e552d13c5 100644
--- a/src/gamePackage.c
+++ b/src/gamePackage.c
@@ -7,6 +7,9 @@
 #include "roxml.h"
 #include "Interface.h"
 #include "gamePackage.h"
+#include "classe.h"
+#include "terrain.h"
+#include "carte.h"
 
 /*!
  * \fn Game_Package Construire_Package()
@@ -19,9 +22,14 @@ Game_Package Construire_Package()
     Game_Package Pack;
 
     Classe* Classes_Pack = Librairie_Classes("../resources/Classes.xml");
+    Pack.nbClasses = getNbElements("../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.nbCartes = getNbElements("../resources/Maps.xml");
 
     Pack.Classes_Package = Classes_Pack;
     Pack.Terrains_Package = Terrains_Pack;
@@ -31,3 +39,42 @@ Game_Package Construire_Package()
     return Pack;
 }
 
+/*!
+ * \fn int getNbElements(char * file)
+ * \brief Fonction determinant le nombre de d'éléments dans un fichier XML
+ *
+ * \param le fichier à tester.
+ * \return le nombre d'élements dans le fichier.
+ */
+int getNbElements(char * file){
+
+    node_t *rootXML, *Element;
+
+    rootXML = roxml_load_doc(file);            /* Ouvre le doc XML et créé le noeud de base */
+    Element = roxml_get_chld(rootXML, NULL, 0);    /* Descend d'un niveau dans l'arborescence */
+
+    return roxml_get_chld_nb(Element);    /* Récupère le nombre de classes entrées dans le fichier XML */
+}
+
+/*!
+ * \fn int getNbClasses(Game_Package pack)
+ * \brief Fonction retournant le nombre de classes d'un Game_Package
+ *
+ * \param le Game_Package à tester.
+ * \return le nombre de classes du Game_Package.
+ */
+int getNbClasses(Game_Package pack){
+    return pack.nbClasses;
+}
+
+/*!
+ * \fn int getNbClasses(Game_Package pack)
+ * \brief Fonction retournant le nombre de classes d'un Game_Package
+ *
+ * \param le Game_Package à tester.
+ * \return le nombre de classes du Game_Package.
+ */
+int getNbCartes(Game_Package pack){
+    return pack.nbCartes;
+}
+
diff --git a/src/gamePackage.h b/src/gamePackage.h
index 0fa8142152964be69ab688609928e3b76693caf9..2017b3a11cb9f9a92542aba97533c6d188087ce4 100644
--- a/src/gamePackage.h
+++ b/src/gamePackage.h
@@ -8,6 +8,11 @@
 
 Game_Package Construire_Package();
 
+int getNbElements(char * file);
+
+int getNbClasses(Game_Package pack);
+int getNbCartes(Game_Package pack);
+
 #endif // GAME_PACKAGE_INCLUDED
 
 
diff --git a/src/structures.h b/src/structures.h
index 28a8f1e331616b71dd7467e6dcedc36ddb906ad5..c27546c4a7280c2bb5c8568876bd53d17764833a 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -32,6 +32,8 @@
 #define LARG_MAX_CARTE 16
 /*! \def LONG_MAX_CARTE */
 #define HAUT_MAX_CARTE 10
+/*! \def TAILLE_CHEMIN */
+#define TAILLE_CHEMIN 50
 
 /*! \enum boolean
  * \brief Definition du type Boolean.
@@ -228,6 +230,8 @@ typedef struct Carte_A{
  * sizeof(Classe) =
  */
 typedef struct Game_Package{
+    int nbCartes;
+    int nbClasses;
     Classe* Classes_Package;
     Terrain* Terrains_Package;
     Skins_GUI* GUI_Package;