diff --git a/projet_rush_hour/README.md b/projet_rush_hour/README.md
index f637892c24d183c34ece0bcdcca079b38a26bb82..a5b29042583cb37473d868cbc7ba9fd8e3ecca5b 100644
--- a/projet_rush_hour/README.md
+++ b/projet_rush_hour/README.md
@@ -1,3 +1,18 @@
-j'ai commencé a reflechir sur le projet et depuis le week-end compte tenu de mon emploi du temps chargé je n'ai s pu faire de rendu mais j'ai ecris quelques lignes de code notamment en deffinissant 2 classes; la classe cell() qui va s'occuper de mes cellues tout au long du jeu et la classe vehicules qui prendra tous les parametres des vehicules
-a present j'ai fais l'interface graphique avec canvas en modelisant les voitures et le plateu de jeu
+
+SEMAINE1
+pour commencer
+j'ai ecris quelques lignes de code notamment en deffinissant 2 classes; la classe Cell() qui va 
+s'occuper de mes cellules tout au long du jeu et la classe Vehicule  qui s'occupe un vehicule
+
+
+SEMAINE2 ET SEMAINE3
+j'ai defini la classe Cell dans le module cellule qui a pour attribut des coordonnées x et y et d'une couleur qui est * 
+les cellules vides sont d'abord représentées par les * et occupées ils ont la couleur ou le nom des vehicules a la place
+j'ai defini la classe Plateau dans le module plateau et mis les voitures tout en considerant 
+que les voitures sont des listes de cellules deja defini dans la classe Cell
+Dans le module jeu je vois l'etat du jeu en affichant le plateau contenant des vehicules et des places libres
+
+SEMAINE5
+j'ai continué dans la classe Plateau qui a pour but de montrer l'evolution du plateau de jeu 
+tout en definissant une fonction qui verifie si une position est valide  
 
diff --git a/projet_rush_hour/cellules.py b/projet_rush_hour/cellule.py
similarity index 59%
rename from projet_rush_hour/cellules.py
rename to projet_rush_hour/cellule.py
index ca642d45d9344c6031836883285e53781004e9b3..687a9717c58404611b72bc56adddb0bf056c11ff 100644
--- a/projet_rush_hour/cellules.py
+++ b/projet_rush_hour/cellule.py
@@ -2,13 +2,13 @@
 #mi13
 
 class Cell():
-    """ construction d'une cellule de la grille de jeu et le met a jour
+    """ construction d'une cellule de la grille de jeu
     une cellule est caracterisé par ses coordonnes sur le plateau et sa couleur
     et caracterisé par le fait d'etre vide  ou non
     Exemple(s) :
     $$$ 
     """
-    def __init__(self,x,y,color):
+    def __init__(self,x,y,couleur):
         """ à_remplacer_par_ce_que_fait_la_fonction
 
         Précondition :
@@ -17,17 +17,10 @@ class Cell():
         """
         self.x = x
         self.y = y
-        self.color = color
+        self.couleur = couleur # permettra de savoir si une cellule est vide ou pas
         self.vehicule = None
         
-    def est_vide(self)->bool:
-        """ verifie si une cellule est vide ou pas
-
-        Précondition :
-        Exemple(s) :
-        $$$
-        """
-        return self.color == 'v'
+    
     
       
      
diff --git a/projet_rush_hour/graphicalbord.py b/projet_rush_hour/graphicalbord.py
deleted file mode 100644
index 438f3ed85958a8812dff23a1dd5a150b46318096..0000000000000000000000000000000000000000
--- a/projet_rush_hour/graphicalbord.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import tkinter as tk
-
-rows = 6
-cols = 6
-case_size = 80
-
-root = tk.Tk()
-root.title("Plateau de 6x6")
-canvas = tk.Canvas(root , width = 480 , height = 480 , bg = "green")
-canvas.pack()
-
-for i in range(rows):
-    for j in range(cols):
-        a1 = j * case_size
-        b1 = i * case_size
-        a2 = a1 + case_size
-        b2 = b1 + case_size
-
-
-
-        canvas.create_rectangle(a1,b1,a2,b2, outline = 'blue' , fill = "black")
-root.mainloop
\ No newline at end of file
diff --git a/projet_rush_hour/grille.py b/projet_rush_hour/grille.py
index 13a97010084cfa5b1af2aee5c1a96bf087959a68..075d217af1fffb4a27b209c97c1474621a67415c 100644
--- a/projet_rush_hour/grille.py
+++ b/projet_rush_hour/grille.py
@@ -1,5 +1,5 @@
 
-from cellules import Cell
+from cellule import Cell
 class Grille():
     """ à_remplacer_par_ce_que_fait_la_classe
 
diff --git a/projet_rush_hour/jeu.py b/projet_rush_hour/jeu.py
index 762001f01cdbbf71057169541f370e9ed0773bff..0c553909d09549175ee9ec1ad3c3ffb7c210f4eb 100644
--- a/projet_rush_hour/jeu.py
+++ b/projet_rush_hour/jeu.py
@@ -1,17 +1,32 @@
-from cellules import Cell
-from vehicules import Vehicule 
+from cellule import Cell
+from vehicule import Vehicule 
 from plateau import Plateau
 def main():
     vehicules = []
-    A = Vehicule(0,0,2,'verti','A')
-    Z = Vehicule(2,1,2,'verti','Z')
-    C = Vehicule(4,4,2,'verti','C')
-    R = Vehicule(5,2,3,'verti','R')
-    B = Vehicule(4,0,2,'horizo','B')
+    A = Vehicule(0,0,2,'horizontal','A')
+    Z = Vehicule(2,1,2,'horizontal','Z')
+    C = Vehicule(4,3,2,'horizontal','C')
+    R = Vehicule(5,2,3,'horizontal','R')
+    B = Vehicule(2,3,2,'vertical','B')
     
     vehicules = [A,Z,C,R,B]
+    
     plateau = Plateau(vehicules)
     plateau.affiche_grille()
+    
+    while not(plateau.est_fini()):
+        couleur = input('choisie vehicule a deplacer : ')
+        mouvement =  input ('choisie le mouvement : gauche, droite, haut , bas : ')
+        de_combien = int(input('vous voulez deplacer de combat : '))
+        vehicule = plateau.recherhe_voiture(couleur)
+        if plateau.est_valide(vehicule, mouvement,de_combien):
+            plateau.deplacer(vehicule,mouvement,de_combien)
+           
+        else:
+            print('deplacement invalide')
+        plateau.affiche_grille()
+        
+        
 if __name__ == "__main__":
     main()
 
diff --git a/projet_rush_hour/plateau.py b/projet_rush_hour/plateau.py
index 586facb39bc12610febc73450468d8a00e5788ab..16f30f6e5f66c9b9aaf6c0bde9f855659c18c8e5 100644
--- a/projet_rush_hour/plateau.py
+++ b/projet_rush_hour/plateau.py
@@ -1,5 +1,5 @@
-from cellules import Cell
-from vehicules import Vehicule
+from cellule import Cell
+from vehicule import Vehicule
 class Plateau():
     """ à_remplacer_par_ce_que_fait_la_classe
 
@@ -16,7 +16,7 @@ class Plateau():
         self.vehicules = vehicules
         self.grille = [[Cell(x,y,'*') for x in range(6)] for y in range(6)]
         for vehicule in vehicules:
-            for cell in vehicule.get_voiture():
+            for cell in vehicule.get_vehicule_cells():
                 self.grille[cell.x][cell.y] = cell
             
     def affiche_grille(self):
@@ -29,18 +29,129 @@ class Plateau():
         for i in range(6):
             for j in range(6):
                 cell = self.grille[i][j]
-                print(cell.color,end = ' ' )
+                print(cell.couleur,end = ' ' )
             print('\n')
             
-    def est_valide(self,vehicule:Vehicule):
-        """ à_remplacer_par_ce_que_fait_la_fonction
+    def est_valide(self,vehicule:Vehicule,mouvement,de_combien)->bool:
+        """ verifier si une position est valide
 
         Précondition :
         Exemple(s) :
-        $$$
+        $$$ A = Vehicule(0,0,2,'horizontal','A')
+        $$$ Z = Vehicule(2,1,2,'horizontal','Z')
+        $$$ C = Vehicule(4,3,2,'horizontal','C')
+        $$$ R = Vehicule(5,2,3,'horizontal','R')
+        $$$ B = Vehicule(2,3,2,'vertical','B') 
+        $$$ p = Plateau([A,Z,C,R,B])
+        $$$ p.est_valide(B,'haut',2)
+        True
+        $$$ p.est_valide(B,'gauche',2)
+        False
         """
         
+        # la variable de_combien est saisie par l'utilisateur dans le module jeu et elle est utilisée dans ce cas pour voir si le pas vers lequel l'utilisateur veut aller est possible
+        
+        cellules_vehicule = vehicule.get_vehicule_cells()
+        if vehicule.orientation == 'horizontal':
+            if mouvement == 'gauche':
+                y = cellules_vehicule[0].y - de_combien
+                x = cellules_vehicule[0].x
+                if y >= 0 and self.grille[x][y].couleur == '*' :
+                    return True
+                return False
+            elif mouvement == 'droite':
+                y = cellules_vehicule[-1].y + de_combien
+                x = cellules_vehicule[-1].x
+                if y<=5 and self.grille[x][y].couleur == '*':
+                    return True
+                return False
+            
+        elif vehicule.orientation == 'vertical':
+            if mouvement == 'haut':
+                x = cellules_vehicule[0].x - de_combien
+                y = cellules_vehicule[0].y
+                if x>=0 and self.grille[x][y].couleur == '*' :
+                    return True
+                return False
+            elif mouvement == 'bas':
+                x = cellules_vehicule[-1].x + de_combien
+                y = cellules_vehicule[-1].y
+                if x>=0 and self.grille[x][y].couleur == '*' :
+                    return True
+                return False
+        return False  
+                
+                
+    def recherhe_voiture(self,couleur)->Vehicule:
+        """ recherche la voiture dans la liste de voitures sur le plateau
+
+        Précondition :
+        Exemple(s) :
+        $$$ A = Vehicule(0,0,2,'horizontal','A')
+        $$$ Z = Vehicule(2,1,2,'horizontal','Z')
+        $$$ C = Vehicule(4,3,2,'horizontal','C')
+        $$$ R = Vehicule(5,2,3,'horizontal','R')
+        $$$ B = Vehicule(2,3,2,'vertical','B') 
+        $$$ p = Plateau([A,Z,C,R,B])
+        $$$ p.recherhe_voiture('A').couleur
+        'A'
+        $$$ p
+        
+        """
+        for  vehicule in self.vehicules:
+            if couleur == vehicule.couleur:
+                return vehicule
+        return None
+
     
+    def deplacer(self,vehicule:Vehicule,mouvement,de_combien):
+        """ deplacement de l'objet voiture
+
+        Précondition :
+        Exemple(s) :
+        $$$ 
+        
+        """
+        # la variable de_combien permet de deplacer le vehicule dans la mesure du possible d'un nombre de pas
+        for cell in vehicule.get_vehicule_cells():
+            self.grille[cell.x][cell.y].couleur = '*' 
+        
+        if vehicule.orientation == 'horizontal':
+            if mouvement == 'gauche':
+                vehicule.y_deb -= de_combien
+            elif mouvement == 'droite':
+                vehicule.y_deb +=  de_combien
+        elif vehicule.orientation == 'vertical':
+            if mouvement == 'bas':
+                vehicule.x_deb +=de_combien
+            elif mouvement == 'haut':
+                vehicule.x_deb -= de_combien 
+        for cell in vehicule.get_vehicule_cells():
+            self.grille[cell.x][cell.y] = cell
+        
+        
+    def est_fini(self)->bool:
+        """ montre quand le jeu se termine
+
+        Précondition :
+        Exemple(s) :
+        $$$ A = Vehicule(0,0,2,'horizontal','A')
+        $$$ Z = Vehicule(2,1,2,'horizontal','Z')
+        $$$ C = Vehicule(4,3,2,'horizontal','C')
+        $$$ R = Vehicule(5,2,3,'horizontal','R')
+        $$$ B = Vehicule(2,3,2,'vertical','B') 
+        $$$ p = Plateau([A,Z,C,R,B])
+        $$$ p.est_fini()
+        False
+        $$$ s = Plateau([A,Z,C,R])
+        $$$ s.est_fini()
+        True
+        """
+        vehicule_Z = self.recherhe_voiture('Z')
+        for i in range(vehicule_Z.y_deb + vehicule_Z.taille,6):
+            if self.grille[2][i].couleur != '*':
+                return False
+        return True
     
 
          
diff --git a/projet_rush_hour/vehicule.py b/projet_rush_hour/vehicule.py
new file mode 100644
index 0000000000000000000000000000000000000000..3ca3144c5794ee9bafb6623c1f1cb89a8345e5e5
--- /dev/null
+++ b/projet_rush_hour/vehicule.py
@@ -0,0 +1,63 @@
+from cellule import Cell
+
+class Vehicule():
+
+
+    """ construit un vehicule qui est une liste de cellule
+    
+
+    Exemple(s) :
+    $$$ v1 = Vehicule(2,0,2,'horizontal','Z')
+    $$$ v1.x_deb
+    2
+    $$$ v1.y_deb
+    0
+    $$$ v1.taille
+    2
+    $$$ v1.orientation
+    'horizontal'
+    $$$ v1.couleur
+    'Z'
+    """
+    def __init__(self,x_deb,y_deb,taille,orientation,couleur):
+        """ à_remplacer_par_ce_que_fait_la_fonction
+
+        Précondition :
+        Exemple(s) :
+        $$$ 
+        """
+        self.x_deb = x_deb # coordonnée x de depart du vehicule
+        self.y_deb = y_deb # coordonnée y de depart du vehicule
+        self.taille = taille # taille de vehicule
+        self.orientation = orientation # savoir si c'est horizontal ou vertical
+        self.couleur = couleur # distinguer les voitures
+        
+                
+    def get_vehicule_cells(self)->list[Cell]:
+        """ modelise un vehicule
+
+        Précondition :
+        Exemple(s) :
+        $$$
+        """
+        cells = []
+        if self.orientation == 'horizontal':
+            for i in range(self.taille):
+                cell = Cell(self.x_deb,self.y_deb + i,self.couleur)# quand le vehicule est horizontal sur le plateau le coordonne x est fixe et le c'est le y qui bouge
+                cells.append(cell)
+        elif self.orientation == 'vertical':
+            for i in range(self.taille):
+                cell = Cell(self.x_deb+i,self.y_deb,self.couleur)# le contraire quand c'est vertical
+                cells.append(cell)
+        
+        return cells
+    
+    def __eq__(self,other)->bool:
+        """ à_remplacer_par_ce_que_fait_la_fonction
+
+        Précondition :
+        Exemple(s) :
+        $$$
+        """
+        return True
+
diff --git a/projet_rush_hour/vehicules.py b/projet_rush_hour/vehicules.py
deleted file mode 100644
index b1c4d18d9fa5b3e22a2d75276aa6175bbe9ffe14..0000000000000000000000000000000000000000
--- a/projet_rush_hour/vehicules.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from cellules import Cell
-import tkinter as tk
-
-class Vehicule():
-    """ construit un vehicule qui est une liste de cellule
-
-    Exemple(s) :
-    $$$ v1 = Vehicule(2,0,2,'horizo','Z')
-    $$$ v1.x_deb
-    2
-    $$$ v1.y_deb
-    0
-    $$$ v1.taille
-    2
-    $$$ v1.orientation
-    'horizo'
-    $$$ v1.couleur
-    'Z'
-    """
-    def __init__(self,x_deb,y_deb,taille,orientation,couleur):
-        """ à_remplacer_par_ce_que_fait_la_fonction
-
-        Précondition :
-        Exemple(s) :
-        $$$ 
-        """
-        self.x_deb = x_deb
-        self.y_deb = y_deb
-        self.taille = taille
-        self.orientation = orientation
-        self.couleur = couleur
-        
-        
-                
-    def get_voiture(self)->list[Cell]:
-        """ modelise les voitures
-
-        Précondition :
-        Exemple(s) :
-        $$$
-        """
-        cells = []
-        if self.orientation == 'verti':
-            for i in range(self.taille):
-                cell = Cell(self.x_deb,self.y_deb + i,self.couleur)
-                cells.append(cell)
-        elif self.orientation == 'horizo':
-            for i in range(self.taille):
-                cell = Cell(self.x_deb+i,self.y_deb,self.couleur)
-                cells.append(cell)
-        return cells
-    
-    
-        import tkinter as tk
-
-    def dessiner_voiture(canvas):
-    # Corps de la voiture
-        canvas.create_rectangle(150, 200, 450, 250, fill="blue", outline="black")
-    
-    # Fenêtres de la voiture
-        canvas.create_rectangle(180, 210, 240, 240, fill="white", outline="black")
-        canvas.create_rectangle(260, 210, 320, 240, fill="white", outline="black")
-    
-    # Toit de la voiture
-        canvas.create_rectangle(180, 180, 320, 200, fill="blue", outline="black")
-        
-        
-    def deplacer_voiture(self,deplacement):
-        """ à_remplacer_par_ce_que_fait_la_fonction
-
-        Précondition :
-        Exemple(s) :
-        $$$
-        """
-        for vehicule in self.vehicules:
-            if self.orientation == 'horizo':
-                self.x += deplacement
-            elif self.orientation == 'verti':
-                self.y += deplacement
-    
-
-        
-    
-    
-    
-    
-    
-    
-