2018-02-03 16:58:40 +00:00
2018-02-03 18:22:49 +00:00
class Etageres ( object ) :
2018-02-03 16:58:40 +00:00
def __init__ ( self ) :
2018-02-05 20:16:16 +00:00
self . etageres = [ ]
self . nbetagere = 0
def add_etagere ( self , largeur , hauteur ) :
self . nbetagere + = 1
self . etageres . append ( Etagere ( largeur , hauteur , self ) )
2018-02-05 19:58:39 +00:00
2018-02-05 20:16:16 +00:00
def nbbouteille ( self ) :
i = 0
2018-02-05 19:58:39 +00:00
for etagere in self . etageres :
2018-02-05 20:16:16 +00:00
for bouteille in etagere :
2018-02-05 19:58:39 +00:00
i + = 1
2018-02-05 20:16:16 +00:00
2018-02-05 19:58:39 +00:00
return i
2018-02-05 20:16:16 +00:00
def nbbouteillecouleur ( self , couleur ) :
2018-02-05 19:58:39 +00:00
i = 0
for etagere in self . etageres :
2018-02-05 20:16:16 +00:00
for bouteille in etagere :
if bouteille . couleur == couleur :
i + = 1
2018-02-05 19:58:39 +00:00
return i
2018-02-05 20:16:16 +00:00
def remove_etagere ( self , etagere ) :
self . etageres . remove ( etagere )
self . nbetagere - = 1
return " etagere {} suprimer " . format ( etagere . num_etagere )
2018-02-05 19:58:39 +00:00
def __iter__ ( self ) :
return iter ( self . etageres )
2018-02-03 16:58:40 +00:00
2018-02-03 18:22:49 +00:00
class Etagere ( object ) :
2018-02-05 20:16:16 +00:00
def __init__ ( self , largeur , hauteur , etageres ) :
self . num_etagere = etageres . nbetagere
self . largeur = largeur
self . hauteur = hauteur
self . etageres = etageres
self . bouteilles = [ ]
def add_bouteille ( self , pos_largeur , pos_hauteur , couleur , appelation , millesime ) :
2018-02-05 19:58:39 +00:00
for bouteille in self . bouteilles :
2018-02-05 20:16:16 +00:00
if ( pos_hauteur > self . hauteur or pos_largeur > self . largeur or pos_largeur < 1 or pos_largeur < 1 ) :
2018-02-05 19:58:39 +00:00
return " bouteille positioné en dehors des emplacement "
2018-02-05 20:16:16 +00:00
if ( pos_largeur == bouteille . pos_largeur and pos_hauteur == bouteille . pos_hauteur ) :
2018-02-05 19:58:39 +00:00
return " une bouteille existe déja a cette emplacement "
2018-02-05 20:16:16 +00:00
self . bouteilles . append (
Bouteille ( pos_largeur , pos_hauteur , couleur , appelation , millesime , self ) )
2018-02-05 19:58:39 +00:00
return " OK "
2018-02-03 18:22:49 +00:00
2018-02-05 20:16:16 +00:00
def remove_bouteille ( self , pos_largeur , pos_hauteur ) :
i = 0
2018-02-05 19:58:39 +00:00
for bouteille in self . bouteilles :
2018-02-05 20:16:16 +00:00
if ( pos_largeur == bouteille . pos_largeur and pos_hauteur == bouteille . pos_hauteur ) :
2018-02-05 19:58:39 +00:00
self . bouteilles . remove ( bouteille )
return " bouteille suprimé "
else :
i + = 1
return " aucune bouteille troucé a cette emplacement "
2018-02-03 18:22:49 +00:00
2018-02-05 19:58:39 +00:00
def __repr__ ( self ) :
2018-02-05 20:16:16 +00:00
return " etagére numéros {} de largeur {} et de hauteur {} et contient {} bouteille(s) " . format ( self . num_etagere , self . largeur , self . hauteur , len ( self . bouteilles ) )
2018-02-05 19:58:39 +00:00
def __iter__ ( self ) :
return iter ( self . bouteilles )
2018-02-03 16:58:40 +00:00
2018-02-05 20:16:16 +00:00
2018-02-03 18:22:49 +00:00
class Bouteille ( object ) :
2018-02-05 20:16:16 +00:00
def __init__ ( self , pos_largeur , pos_hauteur , couleur , appelation , millesime , etagere ) :
self . pos_largeur = pos_largeur
self . pos_hauteur = pos_hauteur
self . couleur = couleur
self . millesime = millesime
self . appelation = appelation
self . etagere = etagere
2018-02-03 16:58:40 +00:00
2018-02-05 20:16:16 +00:00
def __repr__ ( self ) :
return " bouteille: pos_largeur {} , pos_hauteur {} , couleur {} , appelation {} , millesime {} \n " . format ( self . pos_largeur , self . pos_hauteur , self . couleur , self . appelation , self . millesime )
2018-02-05 18:37:13 +00:00
2018-02-05 20:16:16 +00:00
new = Etageres ( )
new . add_etagere ( 30 , 3 )
print ( new . etageres [ 0 ] . add_bouteille ( 28 , 2 , " rouge " , " saint emilion " , 2005 ) )
print ( new . etageres [ 0 ] . add_bouteille ( 24 , 1 , " blanc " , " gewurtz " , 2010 ) )
print ( new . etageres [ 0 ] . add_bouteille ( 23 , 2 , " rouge " , " saint emilion " , 2006 ) )
print ( new . etageres [ 0 ] . bouteilles )
print ( " vos etagére contiennes {} bouteille " . format ( new . nbbouteille ( ) ) )
print ( " vos etagére contiennes {} bouteille de rouge " . format (
new . nbbouteillecouleur ( " rouge " ) ) )
2018-02-05 19:58:39 +00:00
print ( new . remove_etagere ( new . etageres [ 0 ] ) )