diff --git a/class_plateau.py b/class_plateau.py
index dd7594b7d7b2ae0fb82377fc7b2d9dfa73e1e39f..2f0924fe2314d4e0b522d062dbed8948fc4134ad 100644
--- a/class_plateau.py
+++ b/class_plateau.py
@@ -1,8 +1,20 @@
+from class_vehicule import Vehicule
+
 class Plateau():
     """ à_remplacer_par_ce_que_fait_la_classe
-
     Exemple(s) :
-    $$$ 
+    $$$ plateau = Plateau()
+    $$$ plateau.position_vehicules()
+    set()
+    $$$ voiture_rouge = Vehicule('Rouge', (5, 0), 2, 'horizontal')
+    $$$ plateau.est_position_valide(voiture_rouge)
+    True
+    $$$ voiture_bleu = Vehicule('Bleu', (2, 3), 1, 'vertical')
+    $$$ plateau.sont_en_chevauchement(voiture_bleu)
+    False
+    $$$ voiture_vert = Vehicule('vert', (2, 3),1 , 'horizontal')
+    $$$ plateau.sont_en_chevauchement(voiture_vert)
+    False
     """
 
     def __init__(self):
@@ -14,17 +26,15 @@ class Plateau():
         """
         self.taille=(6,6)
         self.liste_vehicule=[]
-    GRILLE_VIDE=[[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' ']]       
-    def initialiser_grille()->None:
+    def __repr__(self):
         """ à_remplacer_par_ce_que_fait_la_fonction
 
         Précondition : 
         Exemple(s) :
         $$$ 
         """
-        for lignes in GRILLE_VIDE:
-            print('|'+lignes[0]+'|'+lignes[1]+'|'+lignes[2]+'|'+lignes[3]+'|'+lignes[4]+'|'+lignes[5]+'|')
-            
+        return f"({self.liste_vehicule})"
+        
     def position_vehicules(self):
         """ renvoie un ensemble contenant la position de chaque vehicule 
 
@@ -33,60 +43,96 @@ class Plateau():
         $$$ 
         """
         res=set()
-        for vehicule in liste_vehicule:
+        for vehicule in self.liste_vehicule:
             x,y=vehicule.position
-            for i in range(vehicule.taille):
+            for i in range(vehicule.longueur):
                 if vehicule.orientation=='horizontal':
                     res.add((x,y+i))
                 elif vehicule.orientation=='vertical':
                     res.add((x+i,y))
         return res
-    def ajout_vehicule(self,vehicule):
-        """ ajoute le vehicule à sa position dans le plateau
+    
+    def sont_en_chevauchement(self, vehicule:Vehicule):
+        """ renvoie True si les deux vehicules se chevaussent et False sinon 
 
         Précondition : 
         Exemple(s) :
         $$$ 
         """
-        if est_position_valide(vehicule):
-            self.liste_vehicule.add(vehicule)
-        else:
-            print("la position du vehicule est invalide ")
+        positions = self.position_vehicules()
+        coordonnees_vehicule = vehicule.liste_coordonnees
+        for c in coordonnees_vehicule:
+            if c in positions:
+                return True
+        return False
+            
         
         
-    def est_position_valide(self,vehicule):
+    def est_position_valide(self,vehicule:Vehicule):
         """ verifie si la position du vehicule est valide 
 
         Précondition : 
         Exemple(s) :
         $$$ 
         """
-        self.position=vehicule.position
-        x , y = self.position
-        i=0
-        while i < vehicule.taille:
-            if vehicule.orientation=='horizontal':
-                if (x,y+i) in self.position_vehicules() or y+i>=self.taille[0]:
-                    return False
-            elif vehicule.orientation=='vertical':
-                if (x,y+i) in self.position_vehicules() or y+i>=self.taille[1]:
-                    return False
-        return True
-    def est_voiture_rouge(self,liste_vehicule)->bool:
-        """ verifie si c'est bel et bien la voiture rouge et si elle peux sortir par la droite 
+        liste_positions = vehicule.liste_coordonnees
+        return all(position[0] < 6 and position[1] < 6 for position in liste_positions)
+    
+    def ajout_vehicule(self,vehicule:Vehicule):
+        """ ajoute le vehicule à sa position dans le plateau
 
         Précondition : 
         Exemple(s) :
         $$$ 
         """
-        for vehicule in self.liste_vehicule:
-            if couleur.vehicule=='R':
-                x,y=vehicule.position
-                if vehicule.orientation=='horizontal' and y+vehicule.taille>=self.taille[0]:
-                    return True
-        return False
-    
+        
+        if self.sont_en_chevauchement(vehicule):
+            print(f" le vehicule {vehicule.couleur} est en chevauchement avec un autre vehicule .")
+        else:
+            self.liste_vehicule.append((vehicule))
     
+    def affiche_grille(self):
+        """ à_remplacer_par_ce_que_fait_la_fonction
 
+        Précondition : 
+        Exemple(s) :
+        $$$ 
+        """
         
-        
\ No newline at end of file
+        grille = [[" " for _ in range(6)] for _ in range(6)]
+        for vehicule in self.liste_vehicule:
+            x, y = vehicule.position
+            position_valide = True
+            for i in range(vehicule.longueur):
+                if vehicule.orientation == "horizontal":
+                    if not (0 <= x < len(grille) and 0 <= y + i < len(grille[0])):
+                        position_valide = False
+                elif vehicule.orientation == "vertical":
+                    if not (0 <= x + i < len(grille) and 0 <= y < len(grille[0])):
+                        position_valide = False
+            if position_valide:
+                for i in range(vehicule.longueur):
+                    if vehicule.orientation == "horizontal":
+                        grille[x][y + i] = vehicule.couleur[0]
+                    elif vehicule.orientation == "vertical":
+                        grille[x + i][y] = vehicule.couleur[0]
+            else:
+                print(f"Position invalide pour le véhicule {vehicule.couleur}, il ne sera pas ajouté.")
+        for ligne in grille:
+            print("+" + "---+" * 6)
+            print("| " + " | ".join(ligne) + " |")
+        print("+" + "---+" * 6)
+
+if __name__ == '__main__':
+    # éxécuté qd ce module n'est pas initialisé par un import.
+    plateau = Plateau()
+    #liste_vehicules = [Vehicule("Rouge", (2, 0), 2, "horizontal"),Vehicule("Bleu", (0, 3), 3, "vertical"),]
+    voiture_rouge = Vehicule('Rouge', (3, 5), 3, 'vertical')
+    voiture_bleu = Vehicule('Bleu', (3, 4), 1, 'vertical')  # Position corrigée
+    voiture_vert = Vehicule('vert', (4, 2),2 , 'horizontal')
+    voiture_orange = Vehicule('Orange', (1, 3),2 , 'vertical')
+    plateau.ajout_vehicule(voiture_rouge)
+    plateau.ajout_vehicule(voiture_bleu)
+    plateau.ajout_vehicule(voiture_vert)
+    plateau.ajout_vehicule(voiture_orange)
+    plateau.affiche_grille()
\ No newline at end of file