diff --git a/src/deplacement.c b/src/deplacement.c
new file mode 100644
index 0000000000000000000000000000000000000000..c3aab91ecef8021481323fc1e8c1278593662213
--- /dev/null
+++ b/src/deplacement.c
@@ -0,0 +1,14 @@
+#include"tableau.h"
+
+/*deplacement.c*/
+
+void deplacement(pile **tableau, int N, char *sel, char couleur)
+{
+  int i=N-strtol(sel+1,NULL,10),j=*sel-'A';
+  if (*sel == '\0' || strtol(sel+1,NULL,10)>N || strtol(sel+1,NULL,10)<1)
+    printf("Aucune case n'est sélectionnée.");
+  else {
+
+  }
+}
+
diff --git a/src/deplacement.h b/src/deplacement.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b45be1747bcb2791dc3941191903862b2ce263e
--- /dev/null
+++ b/src/deplacement.h
@@ -0,0 +1,15 @@
+#ifndef _DEPLACEMENT
+#define _DEPLACEMENT
+
+#include"tableau.h"
+
+/*deplacement.h*/
+
+/*
+ * @require
+ * @assign
+ * @ensure détermine si le déplacement est légal ou pas 
+ */
+void deplacement(pile **tableau,int N, char *cases, char couleur);
+
+#endif
diff --git a/src/tableau.c b/src/tableau.c
index 699b6888772b61f81c93ff2d29713de75bd78863..aea1a69f0679ca4cd77e92802120e1557b0530d4 100644
--- a/src/tableau.c
+++ b/src/tableau.c
@@ -90,3 +90,14 @@ void debut_partie(pile **tableau, int N)
     }
   }
 }
+
+int longueur_pile(pile p)
+{ 
+  int i=0;
+  noeud* tmp=p.sommet; 
+  while (tmp != NULL){
+    i++;
+    tmp=tmp->next;
+  }
+  return i;
+}
diff --git a/src/tableau.h b/src/tableau.h
index 8194227155099b5e0d8fb92a71b1e485170d9195..94a849babb90255d8d4da03651241f390f612f2a 100644
--- a/src/tableau.h
+++ b/src/tableau.h
@@ -74,4 +74,11 @@ void nettoyer(pile **tableau,int N);
  */
 void debut_partie(pile **tableau,int N);
 
+/*
+ * @require
+ * @assign
+ * @ensure retourne le nombre d'éléments dans une pile 
+ */
+int longueur_pile(pile p);
+
 #endif