diff --git a/main.py b/main.py index 6c318bb722068895d9642dc185f373341a4e352a..bb06463925c9b0ce01eb2964305473f9561ca5cb 100644 --- a/main.py +++ b/main.py @@ -18,6 +18,14 @@ class TabletteChocolat: return 'Tablette de chocolat de ' + str(self.m) + 'x' + str(self.n) # __repr__ n'est pas surchargé car à priori dans notre cas __str__ suffit + def __getitem__(self, item) -> int: + if item == 0: + return self.m + elif item == 1: + return self.n + else : + raise IndexError('can only take 0 or 1 as argument') + def coups_possibles(self): ''' renvoie un générateur des coups possibles @@ -56,7 +64,17 @@ class TabletteChocolat: taille_coupe = -1 while not coup in ['l', 'c']: print('il faut choisir quoi couper :') - coup = str(input('Couper des lignes (l) ou des colonnes (c) ? ')) + if self.m > 1 and self.n > 1: + coup = str(input('Couper des lignes (l) ou des colonnes (c) ? ')) + elif self.m == 1 and self.n == 1: + print('on ne peut couper plus rien couper') + return self + elif self.m == 1: + coup = 'l' + print('on ne peut couper plus que des lignes') + elif self.n == 1: + coup = 'c' + print('on ne peut couper plus que des colonnes') if coup == 'l': print('voici les coups possibles : ', ', '.join(str(i) + ' lignes' for i in range(1, self.n))) while not 1 <= taille_coupe <= self.n-1: @@ -65,10 +83,18 @@ class TabletteChocolat: if coup == 'c': print('voici les coups possibles : ', ', '.join(str(i) + ' colonnes' for i in range(1, self.m))) while not 1 <= taille_coupe <= self.m-1: - taille_coupe = int(input('combien de lignes couper ? ')) + taille_coupe = int(input('combien de colonnes couper ? ')) return self.coupe((taille_coupe, 0)) +def jouer(m: int, n: int): + plateau = TabletteChocolat(m, n) + while not (plateau[0] == 1 and plateau[1] == 1): + plateau.plot() + plateau = plateau.demander_coup() + print('Game Over !') + + A = TabletteChocolat(1, 2) B = TabletteChocolat(4, 8) print(A) @@ -79,5 +105,6 @@ print(B.est_possible((3, 0))) print(B.est_possible((3, 2))) print(B.coupe((0, 5))) print(B.coupe((2, 0))) -B.plot() -B.demander_coup().plot() +#B.plot() +#B.demander_coup().plot() +jouer(5, 5) \ No newline at end of file