---
# System prepended metadata

title: Untitled

---

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"])