diff --git a/src/case.c b/src/case.c
index 19c89fbf60381e974526d835ce07e3dbfe5e92ad..018494f4379d8b96cd89d1c023ba711fe90261cc 100644
--- a/src/case.c
+++ b/src/case.c
@@ -10,13 +10,12 @@
 * \brief Fichier contenant le code des fonctions liees aux cases
 */
 
-
-Case * init_case(Case * c,int x, int y, Terrain *t){
+void init_case(Case * c,int x,int y, Terrain *t){
     c->coord_x=x;
     c->coord_y=y;
     c->terrain=t;
     c->occupee=faux;
-    return c;
+    printf("size of Case : %d\nadresse x : %d\nadresse y : %d\nadresse terrain : %d \nadresse occupee : %d\n",sizeof(*c),&c->coord_x, &c->coord_y,&c->terrain,&c->occupee);
 }
 
 int get_x(Case *c){
@@ -36,34 +35,58 @@ boolean case_franchissable(Case *c){
 }
 
 void marquer_occupee(Case *c){
-    if (c->occupee==vrai) printf("case déjà occupée");
     c->occupee=vrai;
 }
 
 void marquer_libre(Case *c){
-    if (c->occupee==faux) printf("case déjà libre");
     c->occupee=faux;
 }
 
 Terrain* get_terrain(Case *c){
     if (c->terrain==NULL){
-        fprintf(stderr,"pas de terrain");
+        return NULL;
     }
     return c->terrain;
 }
 
-int init_carte(Carte* c,unsigned short int largeur, unsigned short int hauteur){
+  /*!
+ * \fn Carte * nouvelleCarte()
+ * \brief La fonction alloue l'espace en memoire pour une structure Carte et renvoye un pointeur vers la structure creee
+ *
+ * \return Le pointeur vers la Carte creee.
+ */
+Carte * nouvelleCarte(){
+    Carte * c = malloc(sizeof(Carte));
+    return c;
+}
+
+  /*!
+ * \fn void deleteCarte(Carte * c)
+ * \brief libere l'espace memoire alloue a une Carte
+ *
+ * \param le pointeur vers la Carte a supprimer.
+ */
+void deleteCarte(Carte * c){
+    free(c);
+}
+
+  /*!
+ * \fn init_carte(Carte* c,unsigned short int largeur, unsigned short int hauteur)
+ * \brief La fonction initialise la position des Case contenues dans la Carte et les definit comme libres.
+ *        l'attribut Terrain de la Carte est initialisé a NULL, il doit etre change a partir d'une autre fonction.
+ *
+ * \param Un pointeur vers la Carte a initialiser, des entiers representant la largeur et la hauteur de la carte.
+ * \return 0 si la Carte n'a pas ete correctement initialisee (si la taille maximum de la carte est depassee), 1 sinon.
+ */
+int init_carte(Carte * c){
     int i,j,n;
-    n=0;
-    if (largeur*hauteur>TAILLE_MAX_CARTE){
-        printf("erreur : taille maximum de la carte dépassée");
-        return 1;
-    }
-    for (i=0;i<(largeur);i++){
-        for (j=0;j<(hauteur);j++){
-            init_case(c[n],i,j,NULL);
-            n++;
+    n=c;
+    for (i=0;i<LARG_MAX_CARTE;i++){
+        for (j=0;j<HAUT_MAX_CARTE;j++){
+            init_case(n,i,j,NULL);
+            printf("Adresse Case : %d, x=%d, y=%d\n\n",n,get_x(n),get_y(n));
+            n=n+sizeof(Case);
         }
     }
-    return 0;
+    return 1;
 }
diff --git a/src/case.h b/src/case.h
index 50035c9e020141c710d3e3edb53a71db4ab9827f..009684164b50155add042f5e9bdcf892f5343f68 100644
--- a/src/case.h
+++ b/src/case.h
@@ -14,7 +14,7 @@ Case* Librairie_Cases(const char *filename);
 
 Case* Remplir_Cases_log(const char *filename);
 
-Case* init_case(Case *c,int x, int y, Terrain *t);
+void init_case(Case *c,int x, int y, Terrain *t);
 
 int get_x(Case *c);
 
@@ -34,7 +34,11 @@ void marquer_libre(Case *c);
 
 Terrain* get_terrain(Case *c);
 
-int init_carte(Carte* c,unsigned short int largeur, unsigned short int hauteur);
+Carte * nouvelleCarte();
+
+void deleteCarte(Carte * c);
+
+int init_carte(Carte* c);
 
 /*Case * trouverCase(Carte * c, int x, int y);*/
 
diff --git a/src/main.c b/src/main.c
index 998074b93cebf6977ec82dc59cd1cf7a33f38b69..35b944358833c4fc7adee2dccf7c8233a0d8b4c3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -125,6 +125,8 @@ int main()
 
     main_SDL(Map_A);
 
+    Carte * c = nouvelleCarte();
+    init_carte(c);
 
     return 0;
 }
diff --git a/src/structures.h b/src/structures.h
index 17e4dbd303e48fedd990158fea8e7fc83ed5a4b1..901620d82bd726714deb0db2eb3eac357fefaf32 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -19,7 +19,7 @@
 #define STRUCTURES_H_INCLUDED
 
 /*! \def TAILLE_MAX_CARTE */
-#define TAILLE_MAX_CARTE 256
+#define TAILLE_MAX_CARTE 160
 /*! \def TAILLE_ID */
 #define TAILLE_ID 8
 /*! \def TAILLE_NOMS */
@@ -29,7 +29,7 @@
 /*! \def LARG_MAX_CARTE */
 #define LARG_MAX_CARTE 16
 /*! \def LONG_MAX_CARTE */
-#define HAUT_MAX_CARTE 16
+#define HAUT_MAX_CARTE 10
 
 /*! \enum boolean
  * \brief Definition du type Boolean.
@@ -73,8 +73,8 @@ typedef struct Terrain{
  * sizeof(Case) = 12 octets
  */
 typedef struct Case{
-    unsigned short int coord_x; /*!< Abscisse de la case*/
-    unsigned short int coord_y; /*!< Ordonnee de la case*/
+    int coord_x; /*!< Abscisse de la case*/
+    int coord_y; /*!< Ordonnee de la case*/
     Terrain * terrain; /*!< Le type de terrain de la case*/
     boolean occupee; /*!< La case est occupee ou non par un personnage*/
 } Case;