From b0c53a7a3ce3b5512ffc2959ed06fb4e4242858a Mon Sep 17 00:00:00 2001
From: gantchou koffi <koffi.gantchou.etu@univ-lille.fr>
Date: Wed, 26 Mar 2025 23:31:04 +0000
Subject: [PATCH] projet rush hour:creation du module plateau et jeu
 initialisation et affichage du plateau

---
 projet_rush_our/cellules.py  | 18 +++++++++++++++---
 projet_rush_our/jeu.py       | 17 +++++++++++++++++
 projet_rush_our/plateau.py   | 37 ++++++++++++++++++++++++++++++++++++
 projet_rush_our/vehicules.py | 33 +++++++++++++++++++++-----------
 4 files changed, 91 insertions(+), 14 deletions(-)
 create mode 100644 projet_rush_our/jeu.py
 create mode 100644 projet_rush_our/plateau.py

diff --git a/projet_rush_our/cellules.py b/projet_rush_our/cellules.py
index 6daa64c..fbe48f5 100644
--- a/projet_rush_our/cellules.py
+++ b/projet_rush_our/cellules.py
@@ -2,12 +2,13 @@
 #mi13
 
 class Cell():
-    """ à_remplacer_par_ce_que_fait_la_classe
-
+    """ construction d'une cellule de la grille de jeu et le met a jour
+    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):
+    def __init__(self,x,y,color):
         """ à_remplacer_par_ce_que_fait_la_fonction
 
         Précondition :
@@ -16,7 +17,18 @@ class Cell():
         """
         self.x = x
         self.y = y
+        self.color = color
         
+    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_our/jeu.py b/projet_rush_our/jeu.py
new file mode 100644
index 0000000..762001f
--- /dev/null
+++ b/projet_rush_our/jeu.py
@@ -0,0 +1,17 @@
+from cellules import Cell
+from vehicules 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')
+    
+    vehicules = [A,Z,C,R,B]
+    plateau = Plateau(vehicules)
+    plateau.affiche_grille()
+if __name__ == "__main__":
+    main()
+
diff --git a/projet_rush_our/plateau.py b/projet_rush_our/plateau.py
new file mode 100644
index 0000000..49112de
--- /dev/null
+++ b/projet_rush_our/plateau.py
@@ -0,0 +1,37 @@
+from cellules import Cell
+from vehicules import Vehicule
+class Plateau():
+    """ à_remplacer_par_ce_que_fait_la_classe
+
+    Exemple(s) :
+    $$$ 
+    """
+    def __init__(self,vehicules:list[Vehicule]):
+        """ à_remplacer_par_ce_que_fait_la_fonction
+
+        Précondition :
+        Exemple(s) :
+        $$$
+        """
+        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_cells():
+                self.grille[cell.x][cell.y] = cell
+            
+    def affiche_grille(self):
+        """ à_remplacer_par_ce_que_fait_la_fonction
+
+        Précondition :
+        Exemple(s) :
+        $$$
+        """
+        for i in range(6):
+            for j in range(6):
+                cell = self.grille[i][j]
+                print(cell.color,end = ' ' )
+            print('\n')
+           
+            
+    
+        
\ No newline at end of file
diff --git a/projet_rush_our/vehicules.py b/projet_rush_our/vehicules.py
index 2231568..ef4c96e 100644
--- a/projet_rush_our/vehicules.py
+++ b/projet_rush_our/vehicules.py
@@ -7,27 +7,38 @@ class Vehicule():
     """ à_remplacer_par_ce_que_fait_la_classe
 
     Exemple(s) :
-     $$$ 
+    $$$ 
     """
-    def __init__(self,position,taille,direction):
+    def __init__(self,x_deb,y_deb,taille,orientation,couleur):
         """ à_remplacer_par_ce_que_fait_la_fonction
 
         Précondition :
         Exemple(s) :
-        $$$
+        $$$ Vehicule()
         """
-        self.position = position
+        self.x_deb = x_deb
+        self.y_deb = y_deb
         self.taille = taille
-        self.direction = direction
-       
-    def deplace_voiture(self):
-        """ à_remplacer_par_ce_que_fait_la_fonction
+        self.orientation = orientation
+        self.couleur = couleur
+        
+        
+                
+    def get_cells(self)->list[Cell]:
+        """ modelise les voitures
 
         Précondition :
         Exemple(s) :
         $$$
         """
-        for i in range(6):
-            
-    
+        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
     
\ No newline at end of file
-- 
GitLab