예제 #1
0
    def __init__(self, anno=1000, estimate_people=100):
        # список всех людей в социуме, на данный момент включая мертвых (проверить)
        self.roll_genome()

        Socium.class_var_init(estimate_people)
        Human.init_files()
        Family.init_files()
        FoodDistribution.init_files()
        self.soc_list: List[Human] = list()
        self.families: List[Family] = list()

        self.stat = statistics.Soc_stat(self)
        self.soc_food = FoodDistribution(self)

        self.person_stat_file = open('./person_features_table.csv', 'w', encoding="UTF16")
        self.person_stat = csv.writer(self.person_stat_file, delimiter='\t', lineterminator='\n')
        pers_stat_header = list()
        for i in genetics.GN:
            pers_stat_header.append(i)
        hextend = ['макс. возр. отца', 'возр. отца при рождении', 'макс. возр. матери', 'возр. матери при рождении', 'каким по счету родился', 'кол-во супругов', 'кол-во детей', 'возраст смерти']
        pers_stat_header.extend(hextend)
        self.person_stat.writerow(pers_stat_header)
        # текущий год
        self.anno: Anno = Anno(anno)
        # локальный счетчик смертей, после появления чужака обнуляется
        self.short_death_count: int = 0
        # общий счетчик смертей
        self.global_death_count: int = 0
        # давно умершие родственники (чтобы зря не крутить большие циклы)
        self.forgotten: List = []
        self.people_alive: List = []