from arbre import Arbre
class Foret :
"""Définition de la classe Foret
Attributes
----------
__saison : int
Le numéro associé à la saison actuelle en sachant que Hiver = 0, Printemps = 1, Été = 2 et Automne = 3, on initialise le __saison = 1
__jour_saison : int
Le jour de la saison en question, on initialise le __jour_saison = 1
__nb_graines : int
Le nombre de fruits tombés (graines) l'année précédente, on initialise le __nb_graines = 0
__nb_arbres : int
Nombre d'arbres vivants dans la forêt
__arbres : list(Arbre())
Liste d'arbres générés avec __nb_arbres à des coordonnées aléatoires (x, y) avec x et y compris entre 0 et 1 au sens large
Parameters
----------
__nb_arbres : int
Nombre d'arbres vivants dans la forêt
Examples
--------
"""
def __init__(self, nb_arbres) :
"""Constructeur de la classe Foret
Attributes
----------
__nb_arbres : int
Nombre d'arbres vivants dans la forêt
Examples
--------
"""
self.__saison = 1
self.__jour_saison = 1
self.__nb_graines = 0
self.__nb_arbres = nb_arbres
arbres=[]
for e in range (0:self.__nb_arbres):
temp_x = random.random()
temp_y = random.random()
arbres.append(Arbre((temp_x, temp_y))
self.__arbres=arbres
def __add__(self) :
self.__jour_saison = self.__jour_saison + 1
if self.__saison = 1 & self.__jour_saison <= 15 :
if random.randint(1,1000)<=1 :
nb_arbres = nb_arbres + 1
elif self.__saison = 1 & self.__jour_saison = 16 :
self.__nb_graines = 0
# Vieillissement
Arbre(Branche).vieillir(self.__nb_arbres)
def couleur(self) :
"""Retourne les couleurs présentes dans la forêt et en quelles proportions les unes par rapport aux autres selon le nombre d'arbres
Returns
-------
dictionnaire
Dictionnaire avec comme clés les couleurs présentes dans la forêt associées à leur proportion respective occupée dans la forêt
Examples
--------
"""
dictionnaire_couleur_foret = dict("vert" : 0, "marron" : 0, "jaune" : 0, "rouge" : 0, "orange" : 0)
for i in 1:nb_arbres :
for j in dictionnaire_couleur_foret.keys() :
dictionnaire_couleur_foret[j] = dictionnaire_couleur_foret[j] + Branche.couleur(self.__arbres[i])
for k in dictionnaire_couleur_foret.keys() :
dictionnaire_couleur_foret[j] = dictionnaire_couleur_foret[j] / self.__nb_arbres
return dictionnaire_couleur_foret
def __str__(self) :
# Vieillissement : 23 jours
nombre_jours = 23
self.__add__(nombre_jours)
self.couleur()
return "{} {:5.of} {:.3f} {:.3f} {:.3f} {:.3f} {:.3f}".format(self.__saison, self.__nb_arbres, dictionnaire_couleur_foret["marron"], dictionnaire_couleur_foret["orange"], dictionnaire_couleur_foret["jaune"], dictionnaire_couleur_foret["rouge"], dictionnaire_couleur_foret["vert"])
# Vieillissement : 2 jours
nombre_jours = 2
self.__add__(nombre_jours)
self.couleur()
return "{} {:5.of} {:.3f} {:.3f} {:.3f} {:.3f} {:.3f}".format(self.__saison, self.__nb_arbres, dictionnaire_couleur_foret["marron"], dictionnaire_couleur_foret["orange"], dictionnaire_couleur_foret["jaune"], dictionnaire_couleur_foret["rouge"], dictionnaire_couleur_foret["vert"])
# Vieillissement : 59 jours
nombre_jours = 59
self.__add__(nombre_jours)
self.couleur()
return "{} {:5.of} {:.3f} {:.3f} {:.3f} {:.3f} {:.3f}".format(self.__saison, self.__nb_arbres, dictionnaire_couleur_foret["marron"], dictionnaire_couleur_foret["orange"], dictionnaire_couleur_foret["jaune"], dictionnaire_couleur_foret["rouge"], dictionnaire_couleur_foret["vert"])
# Vieillissement : 129 jours
nombre_jours = 129
self.__add__(nombre_jours)
self.couleur()
return "{} {:5.of} {:.3f} {:.3f} {:.3f} {:.3f} {:.3f}".format(self.__saison, self.__nb_arbres, dictionnaire_couleur_foret["marron"], dictionnaire_couleur_foret["orange"], dictionnaire_couleur_foret["jaune"], dictionnaire_couleur_foret["rouge"], dictionnaire_couleur_foret["vert"])
# Vieillissement : 68 jours
nombre_jours = 68
self.__add__(nombre_jours)
self.couleur()
return "{} {:5.of} {:.3f} {:.3f} {:.3f} {:.3f} {:.3f}".format(self.__saison, self.__nb_arbres, dictionnaire_couleur_foret["marron"], dictionnaire_couleur_foret["orange"], dictionnaire_couleur_foret["jaune"], dictionnaire_couleur_foret["rouge"], dictionnaire_couleur_foret["vert"])