__author__ = 'christinefay-varnier'
__projet__ = 'Compression_carte'
__fichier__ = 'carte.py'
__date__ = '25/03/2015'

from ligne import Ligne

class Carte:
    def __init__(self, filename):
        """
        :param filename: modelise une carte à partir de son stockage sous format compresse dans le fichier de nom filename_
        :return:
        """
        self.filename_ = filename

        fcarte = open(filename, "r")

        # initialisation de la matrice carte
        self.matrice_carte_ = []

        for ligne in fcarte:
            # pour chaque ligne du fichier
            # on crée une instance de la classe Ligne
            line = Ligne(ligne)

            # on decompresse line
            liste_ligne = line.decompresse()
            # print(liste_ligne)

            # on l'ajoute à la matrice
            self.matrice_carte_.append(liste_ligne)

        fcarte.close()
        
    def __repr__(self):
        
        txt = ""
        
        for ligne in self.matrice_carte_:
            for elt in ligne:
                txt += str(elt) + "\t"
            
            txt += '\n'
            
        return txt

    def sauvegarde(self):
        """
        :return:    cree un fichier desauvegarde de la carte decompressee
        """

        rg = self.filename_.find(".")
        newfilename = self.filename_[:rg] + "_decompresse.txt"
        # ou encore nom, suffixe = self.filename_.split(".")
        # newfilename = nom + "_decompresse." + suffixe
        fdecompresse = open(newfilename, "w")

        fdecompresse.write(str(self))

        fdecompresse.close()

if __name__ == '__main__':
    filename = "carte.txt"
    ma_carte = Carte(filename)
    ma_carte.sauvegarde()