diff --git a/main.py b/main.py index 47d3cd3c772d1f2b18394a1ad268acbdb3e1fd76..3a555b90c0a042d370d0a6a5dbf0f1a1c9cc9324 100644 --- a/main.py +++ b/main.py @@ -3,6 +3,14 @@ from matplotlib.patches import Polygon class TabletteChocolat: def __init__(self, m, n): + """ + :int m: Nombre de ligne + :int n: Nombre de colonne + + Cette classe instancie un nombre de ligne et de colonne qui constituent la tablette de chocolat + In vérifie si les paramètre sont bien entiers sinon on renvoie une erreur de type TypeError + """ + if isinstance(m, int): self.m = m self.n = n @@ -10,12 +18,28 @@ class TabletteChocolat: raise TypeError("m et n doivent être des nombres") def __str__(self): + """ + Surcharge de la methode __str__ qui est la méthode print + + :return str + """ return f"Tablette de chocolat de {self.m}x{self.n}" def __repr__(self): + """ + Surcharge de la méthode __repr__ qui est la méthode executer lors de l'instanciation d'un objet + + :return str + """ return f"Tablette de chocolat de {self.m}x{self.n}" + def coups_possible(self): + """ + On initialise une liste vide ou on y mets tout les coups possibles tel que m>i>0 et j=0 ou n>j>0 et i=0 + + return list + """ liste_coups_possibles = [] for i in range(self.m): for j in range(self.n): @@ -24,38 +48,52 @@ class TabletteChocolat: return liste_coups_possibles def est_possible(self, i, j): + """ + :int i: Nombre de ligne + :int j: Nombre de colonne + + On vérifie si le coup (i,j) est possible avec les conditions m>i>0 et j=0 ou n>j>0 et i=0 + + :return bool + """ if (self.m > i and i > 0 and j == 0) or (self.n > j and j > 0 and i == 0): return True return False + def coupe(self, i, j): + """ + :int i: Nombre de ligne + :int j: Nombre de colonne + + On coupe la tablette de chocolat et on retourne une nouvelle tablette issue de la decoupe + + :return TabletteChocolat + """ if self.est_possible(i,j): return TabletteChocolat(self.m - i, self.n - j) raise TypeError("Ce coup n'est pas possible") - def demander_coup(self): + """ + On fait un échange de coup pour jouer au jeu - + :return: TabletteChocolat until the end of while + """ n = 1 while n != 0: - l_c = str(input("Couper des lignes (l) ou des colonnes (c): ")) try: if l_c == "l": print(f"Les nombres possible sont{self.coups_possible()}") coup = int(input("Nombre de lignes à couper (m, 0): ")) - n = 0 return self.coupe(coup, 0) - - elif l_c == "c": print(f"Les nombres possible sont{self.coups_possible()}") coup = int(input("Nombre de colonnes à couper (0, m): ")) - n = 0 return self.coupe(0, coup) except TypeError: @@ -65,7 +103,16 @@ class TabletteChocolat: return False + + + def jouer(m, n): + """ + :int m: Nombre de lignes + :int n: Nombre de colonnes + + Programme qui permet de jouer au jeu + """ jeu = TabletteChocolat(m, n) print(jeu) @@ -76,34 +123,34 @@ def jouer(m, n): print("Vous avez Perdu") +#-----------Main question 2 +B = TabletteChocolat("p", "y") +#-----------Main question 3 +print(B) +B -B = TabletteChocolat(3, 4) - -print(B) +#-----------Main question 4 +print(B.coups_possible(0, 4)) +print(B.coups_possible(2, 3)) +print(B.coups_possible(1, 0)) -print(B.coups_possible()) +#-----------Main question 6 print(B.est_possible(2, 0)) print(B.est_possible(3, 0)) print(B.est_possible(3, 2)) print(B.est_possible(0, 2)) -print(B.coupe(0, 3)) - -#C = B.demander_coup() - -#print(C) - -jouer(3,4) +#-----------Main question 7 +print(B.coupe(0, 3)) +#-----------Essaie plot, j'obtiens un rectangle mais trop long a me souvenir des formules #print(help(plt.plot)) - - ''' def plot(self): fig, axes = plt.subplots() @@ -122,4 +169,13 @@ jouer(3,4) plt.axis('off') plt.show() -''' \ No newline at end of file +''' + + + + + +#-----------Main question 10 +jouer(3,4) + +