diff --git a/src/affichage.c b/src/affichage.c
index 6762c65f356779a0cadeedb6d5de2e924f97655e..b5e5ccfffed425bbafc11dc07a70ec46088b32ec 100644
--- a/src/affichage.c
+++ b/src/affichage.c
@@ -849,7 +849,7 @@ int affichage_carte()
             }
             if(event.button.x<LARGEUR_CARTE*LARGEUR_CASE)
             {
-                //deplacement_personnage(event.button.x,event.button.y);
+                deplacement_personnage(event.button.x,event.button.y);
             }
             break;
         case SDL_MOUSEMOTION:
diff --git a/src/controleur.c b/src/controleur.c
index aaa28adc460d05d6bac18c27a2efb0759496b859..bf16f048d67ea690a20abf4818475f27102139a2 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -510,6 +510,21 @@ char * obtenirNomJoueurCourant(){
     return getNomJoueur(getCurrentJoueur(getListJoueur(partieGlobale)));
 }
 
+
+
+void deplacement_personnage(int numPerso, int x_pixel, int y_pixel){
+    int x=x_case_cliquee(x_pixel, y_pixel);
+    int y=y_case_cliquee(x_pixel, y_pixel);
+    if(numPerso<=NB_PERSO){
+        deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1]);
+    }
+    else{
+        deplacement_unitaire(getCurrentJoueur(getListJoueur(partieGlobale))->groupe[numPerso-1-NB_PERSO]);
+    }
+}
+
+
+
   /*!
  * \fn char * obtenirNomClassePersonnage(int numero)
  * \brief La fonction renvoie le nom de la classe du Personnage en parrametre.
diff --git a/src/controleur.h b/src/controleur.h
index 454e7405e3b03d37ef8ac1b3b454815322e865b6..faa33806000cc8322e256c150da8fb9679b805e6 100644
--- a/src/controleur.h
+++ b/src/controleur.h
@@ -21,7 +21,7 @@ char ** obtenirNomsClasses();
 char ** obtenirSkinsClasses();
 void freeClasses(char ** tab);
 
- int nbCartes();
+int nbCartes();
 char ** obtenirNomsCartes();
 char ** obtenirDescriptionCarte();
 void freeCartes(char **);
diff --git a/src/deplacements.c b/src/deplacements.c
index 36798111884ecf68e6cd6ce2f813ecc64c4465e4..7856374eca6647503754a6e35447008e3b6adcda 100644
--- a/src/deplacements.c
+++ b/src/deplacements.c
@@ -11,40 +11,40 @@
 */
 
 /*!
- * \fn boolean case_a_cote(Personnage * perso, Case * destination,int hauteur_case , int largeur_case)
+ * \fn boolean case_a_cote(Personnage * perso, Case * destination)
  * \brief La fonction vérifie que la case hexagonale "destination" est contigue à la case du personnage
  *
- * \param Un personnage, une case, deux entiers.
+ * \param Un personnage, une case
  * \return Un booleen.
  */
-boolean case_a_cote(Personnage * perso, Case * destination,int hauteur_case , int largeur_case){
+boolean case_a_cote(Personnage * perso, Case * destination){
     Case *depart = getPosition(perso);
-    if (get_x(depart)>get_x(destination)+largeur_case||get_x(depart)<get_x(destination)-largeur_case||get_y(depart)>get_y(destination)+hauteur_case||get_y(depart)<get_y(destination)-hauteur_case){
+    if (get_x(depart)>get_x(destination)+1||get_x(depart)<get_x(destination)-1||get_y(depart)>get_y(destination)+1||get_y(depart)<get_y(destination)-1){
         return faux;
     }
-    if (get_y(depart)==get_y(destination)+hauteur_case&&get_x(depart)!=get_x(destination)){
+    if (get_y(depart)==get_y(destination)+1&&get_x(depart)!=get_x(destination)){
         return faux;
     }
     return vrai;
 }
 
 /*!
- * \fn boolean case_a_cote(Personnage * perso, Case * destination,int hauteur_case , int largeur_case)
+ * \fn deplacement_unitaire(Personnage *perso,Case * destination)
  * \brief déplace un personnage sur une case située à côté de la sienne, si cela est possible
  *
- * \param Un personnage, une case, deux entiers.
+ * \param Un personnage, une case
  * \return Un entier.
  */
-int deplacement_unitaire(Personnage *perso,Case * destination, int hauteur_case , int largeur_case){
-    if (est_occupee(destination)){
+int deplacement_unitaire(Personnage *perso,Case * destination){
+    if (est_occupee(destination)==vrai){
         printf("deplacement impossible : case deja occupee par un personnage\n");
         return 1;
     }
-    /*if (case_franchissable(destination)==faux){
+    if (case_franchissable(destination)==faux){
         printf("déplacement impossible : case infranchissable");
         return 1;
-    }*/
-    if (case_a_cote(perso,destination, hauteur_case, largeur_case)==vrai){
+    }
+    if (case_a_cote(perso,destination)==vrai){
        return deplacer_personnage(perso, destination);
     }
     printf("deplacement impossible : case non contigue\n");
diff --git a/src/deplacements.h b/src/deplacements.h
index da5923c835ae921899ffd3200dab29bd0bdc07b6..5375a5a983b0c58a492abb779f5713a4e4808189 100644
--- a/src/deplacements.h
+++ b/src/deplacements.h
@@ -6,9 +6,9 @@
 #ifndef DEPLACEMENTS_H_INCLUDED
 #define DEPLACEMENTS_H_INCLUDED
 
-boolean case_a_cote(Personnage *perso,Case *destination,int hauteur_case, int largeur_case);
+boolean case_a_cote(Personnage *perso,Case *destination);
 
-int deplacement_unitaire(Personnage *perso,Case * destination, int hauteur_case , int largeur_case);
+int deplacement_unitaire(Personnage *perso,Case * destination);
 
 
 #endif