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
Branches master
No related tags found
No related merge requests found
......@@ -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()
......@@ -123,3 +170,12 @@ jouer(3,4)
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