Example #1
0
class Game:
    def __init__(self, player_number):
        self.__player_number = player_number
        # def classes objects
        self.__scenario_obj = Scenario()
        self.__professions_obj = Professions()
        self.__health_obj = Health()
        self.__bio_characteristic_obj = BIO()
        self.__additional_info_obj = AInfo()
        self.__personality_trains_obj = PTrains()
        self.__hobbies_obj = Hobbies()
        self.__phobias_obj = Phobias()
        self.__special_info_obj = SInfo()

        self.__load_data()
        self.__shuffle_data()
        self.__create_players()
        self.__make_players_files()

    def __load_data(self):
        print("Loading scenarios...")
        self.__scenario = self.__scenario_obj.get_scenarios()
        print("Loading scenarios - completed!")

        print("Loading professions...")
        self.__professions = self.__professions_obj.get_professions()
        print("Loading professions - completed!")

        print("Loading diseases (health)...")
        self.__diseases = self.__health_obj.get_diseases()
        print("Loading diseases (health) - completed!")

        print("Loading bio. characteristics...")
        self.__bio_characteristics = self.__bio_characteristic_obj.get_bio_info(
            self.__player_number)
        print("Loading bio. characteristics - completed!")

        print("Loading additional information...")
        self.__additional_info = self.__additional_info_obj.get_additional_info(
        )
        print("Loading additional information - completed!")

        print("Loading personality trains...")
        self.__personality_trains = self.__personality_trains_obj.get_peronality_trains(
        )
        print("Loading personality trains - completed!")

        print("Loading hobbies...")
        self.__hobbies = self.__hobbies_obj.get_hobbies()
        print("Loading hobbies - completed!")

        print("Loading phobias...")
        self.__phobias = self.__phobias_obj.get_phobias()
        print("Loading phobias - completed!")

        print("Loading special information...")
        self.__special_info = self.__special_info_obj.get_special_info()
        print("Loading special information - completed!")

    def __shuffle_data(self):
        # Scenarios
        keys = list(self.__scenario.keys())
        shuffle(keys)
        self.__shuffled_scenario = dict()
        for key in keys:
            self.__shuffled_scenario.update({key: self.__scenario[key]})

        # Profs
        keys = list(self.__professions.keys())
        shuffle(keys)
        self.__shuffled_professions = dict()
        for key in keys:
            self.__shuffled_professions.update({key: self.__professions[key]})

        # Diseases
        keys = list(self.__diseases.keys())
        shuffle(keys)
        self.__shuffled_diseases = dict()
        for key in keys:
            self.__shuffled_diseases.update({key: self.__diseases[key]})

        # Bio
        shuffle(self.__bio_characteristics)
        self.__shuffled_bio_characteristics = self.__bio_characteristics

        # Additional info
        shuffle(self.__additional_info)
        self.__shuffled_additional_info = self.__additional_info

        # Personality traits
        shuffle(self.__personality_trains)
        self.__shuffled_personality_trains = self.__personality_trains

        # Hobbies
        keys = list(self.__hobbies.keys())
        shuffle(keys)
        self.__shuffled_hobbies = dict()
        for key in keys:
            self.__shuffled_hobbies.update({key: self.__hobbies[key]})

        # Phobias
        shuffle(self.__phobias)
        self.__shuffled_phobias = self.__phobias

        # Special info
        shuffle(self.__special_info)
        self.__shuffled_special_info = self.__special_info

    def __create_players(self):
        try:
            self.__players = []
            for i in range(self.__player_number):
                player = {}
                # prof
                key = choice(list(self.__shuffled_professions))
                player["Profession"] = {key: self.__shuffled_professions[key]}
                del self.__shuffled_professions[key]
                # disease
                key = choice(list(self.__shuffled_diseases))
                player["Disease"] = key
                del self.__shuffled_diseases[key]
                # bio
                key = choice(self.__shuffled_bio_characteristics)
                player["Bio.Characteristic"] = key
                self.__shuffled_bio_characteristics.remove(key)
                # additional info
                key = choice(self.__shuffled_additional_info)
                player["Additional information"] = key
                self.__shuffled_additional_info.remove(key)
                # personality traits
                key = choice(self.__shuffled_personality_trains)
                player["Personality trait"] = key
                self.__shuffled_personality_trains.remove(key)
                # hobbies
                key = choice(list(self.__shuffled_hobbies))
                player["Hobby"] = {key: self.__shuffled_hobbies[key]}
                del self.__shuffled_hobbies[key]
                # phobias
                key = choice(self.__shuffled_phobias)
                player["Phobia"] = key
                self.__shuffled_phobias.remove(key)
                # Special information
                key = choice(self.__shuffled_special_info)
                player["Special information"] = key
                self.__shuffled_special_info.remove(key)

                self.__players.append(player)
        except ValueError as error:
            print("Error ", error)

    def __make_players_files(self):
        for i in range(self.__player_number):
            with open(f"players/{i}.txt", "w", encoding='utf-8') as file:
                for key in self.__players[i].keys():
                    if key == "Profession":
                        prof_key = list(
                            self.__players[i][key].keys())  # prof name
                        file.write(f"Ваша профессия - {prof_key[0]}\n")
                        file.write(
                            f"Описание вашей профессии - {self.__players[i][key][prof_key[0]]}\n"
                        )
                    if key == "Disease":
                        disease_key = self.__players[i][key]
                        file.write(
                            f"Ваше состояние здоровья - {disease_key}\n")
                    if key == "Bio.Characteristic":
                        bio_key = list(self.__players[i][key].keys())
                        file.write(f"Ваш пол - {bio_key[0]}\n")
                        file.write(
                            f"Ваш возраст - {self.__players[i][key][bio_key[0]]}\n"
                        )
                    if key == "Additional information":
                        file.write(
                            f"Ваша карта с доп. информацией под номером - {self.__players[i][key]}\n"
                        )
                    if key == "Personality trait":
                        file.write(
                            f"Ваша персональная четра - {self.__players[i][key]}\n"
                        )
                    if key == "Hobby":
                        hobby_key = list(self.__players[i][key].keys())
                        file.write(
                            f"Ваше хобби - {self.__players[i][key][hobby_key[0]]}(Номер хобби - {hobby_key[0]})\n"
                        )
                    if key == "Phobia":
                        file.write(
                            f"Ваша фобия - {self.__players[i][key].capitalize()}\n"
                        )
                    if key == "Special information":
                        file.write(
                            f"Ваша карта с спец. информацией под номером - {self.__players[i][key]}\n"
                        )