Skip to content
Snippets Groups Projects
Commit d6ef1d90 authored by SAEZ Théo's avatar SAEZ Théo
Browse files

Mise en page du code -- Final

parent 28fd0f93
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,14 @@ from matplotlib.patches import Polygon ...@@ -3,6 +3,14 @@ from matplotlib.patches import Polygon
class TabletteChocolat: class TabletteChocolat:
def __init__(self, m, n): 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): if isinstance(m, int):
self.m = m self.m = m
self.n = n self.n = n
...@@ -10,12 +18,28 @@ class TabletteChocolat: ...@@ -10,12 +18,28 @@ class TabletteChocolat:
raise TypeError("m et n doivent être des nombres") raise TypeError("m et n doivent être des nombres")
def __str__(self): 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}" return f"Tablette de chocolat de {self.m}x{self.n}"
def __repr__(self): 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}" return f"Tablette de chocolat de {self.m}x{self.n}"
def coups_possible(self): 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 = [] liste_coups_possibles = []
for i in range(self.m): for i in range(self.m):
for j in range(self.n): for j in range(self.n):
...@@ -24,38 +48,52 @@ class TabletteChocolat: ...@@ -24,38 +48,52 @@ class TabletteChocolat:
return liste_coups_possibles return liste_coups_possibles
def est_possible(self, i, j): 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): if (self.m > i and i > 0 and j == 0) or (self.n > j and j > 0 and i == 0):
return True return True
return False return False
def coupe(self, i, j): 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): if self.est_possible(i,j):
return TabletteChocolat(self.m - i, self.n - j) return TabletteChocolat(self.m - i, self.n - j)
raise TypeError("Ce coup n'est pas possible") raise TypeError("Ce coup n'est pas possible")
def demander_coup(self): def demander_coup(self):
"""
On fait un échange de coup pour jouer au jeu
:return: TabletteChocolat until the end of while
"""
n = 1 n = 1
while n != 0: while n != 0:
l_c = str(input("Couper des lignes (l) ou des colonnes (c): ")) l_c = str(input("Couper des lignes (l) ou des colonnes (c): "))
try: try:
if l_c == "l": if l_c == "l":
print(f"Les nombres possible sont{self.coups_possible()}") print(f"Les nombres possible sont{self.coups_possible()}")
coup = int(input("Nombre de lignes à couper (m, 0): ")) coup = int(input("Nombre de lignes à couper (m, 0): "))
n = 0
return self.coupe(coup, 0) return self.coupe(coup, 0)
elif l_c == "c": elif l_c == "c":
print(f"Les nombres possible sont{self.coups_possible()}") print(f"Les nombres possible sont{self.coups_possible()}")
coup = int(input("Nombre de colonnes à couper (0, m): ")) coup = int(input("Nombre de colonnes à couper (0, m): "))
n = 0
return self.coupe(0, coup) return self.coupe(0, coup)
except TypeError: except TypeError:
...@@ -65,7 +103,16 @@ class TabletteChocolat: ...@@ -65,7 +103,16 @@ class TabletteChocolat:
return False return False
def jouer(m, n): 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) jeu = TabletteChocolat(m, n)
print(jeu) print(jeu)
...@@ -76,34 +123,34 @@ def jouer(m, n): ...@@ -76,34 +123,34 @@ def jouer(m, n):
print("Vous avez Perdu") print("Vous avez Perdu")
#-----------Main question 2
B = TabletteChocolat("p", "y")
#-----------Main question 3
print(B)
B
B = TabletteChocolat(3, 4) #-----------Main question 4
print(B.coups_possible(0, 4))
print(B) 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(2, 0))
print(B.est_possible(3, 0)) print(B.est_possible(3, 0))
print(B.est_possible(3, 2)) print(B.est_possible(3, 2))
print(B.est_possible(0, 2)) print(B.est_possible(0, 2))
print(B.coupe(0, 3))
#C = B.demander_coup() #-----------Main question 7
print(B.coupe(0, 3))
#print(C)
jouer(3,4)
#-----------Essaie plot, j'obtiens un rectangle mais trop long a me souvenir des formules
#print(help(plt.plot)) #print(help(plt.plot))
''' '''
def plot(self): def plot(self):
fig, axes = plt.subplots() fig, axes = plt.subplots()
...@@ -123,3 +170,12 @@ jouer(3,4) ...@@ -123,3 +170,12 @@ jouer(3,4)
plt.show() plt.show()
''' '''
#-----------Main question 10
jouer(3,4)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment