Ejemplo n.º 1
0
    def save_end_game_state(self, awards: AiAwards, game_state: GameState):
        json.dump(
            {
                "game_state": game_state.as_json(),
                "awards": awards.as_json()
            },
            self._game_state_log_file,
            indent=4)
        self._game_state_log_file.write("]}\n")
        self._game_state_log_file.close()

        json.dump(
            {
                "game_state":
                game_state.as_json(),
                "awards":
                awards.as_json(),
                "game_duration":
                self._start_time.get_different_as_string(
                    game_state.current_time),
                "awards_sum":
                self._generate_awards_sum(awards).as_json(),
            },
            self._end_game_state_file,
            indent=4)
        self._end_game_state_file.close()
Ejemplo n.º 2
0
    def setUp(self):
        super().setUp()
        self.awards: AiAwards = AiAwards()
        self.game_state: GameState = GameState()
        self.game_state.current_time.set_string_presentation("0")
        self.logger.save_to_game_record_file(self.awards, self.game_state)

        self.game_state2: GameState = GameState()
        self.game_state2.current_time.set_string_presentation("1")
        self.logger.save_end_game_state(self.awards, self.game_state2)
Ejemplo n.º 3
0
    def extract_game(cls, json_file_content: Json) -> GameState:
        try:
            game_state = GameState()
            game_state.game_units = cls._extract_game_unit(json_file_content)

            game_state.person_unit_params = cls._extract_person_unit_params(
                json_file_content)
            game_state.sector_params = cls._extract_sector_params(
                json_file_content)
            game_state.current_time.set_string_presentation(
                cls._extract_current_time(json_file_content))
            return game_state
        except Exception as e:
            print("Unexpected error:", str(e))
    def generate_last_state(cls) -> GameState:
        game_state: GameState = GameState()
        person_unit_params: PersonUnitParams = PersonUnitParams()
        person_unit_params.troop_amount = 1
        person_unit_params.organization = 1
        person_unit_params.enemy_troop_amount = 1
        person_unit_params.enemy_organization = 1

        person_unit_params.experience = 1
        person_unit_params.overlap = 1
        person_unit_params.speed = 1
        person_unit_params.spent_time = 1
        game_state.person_unit_params = person_unit_params

        sector_params: SectorParams = SectorParams()
        sector_params.enemyUnitToSectors = [
            [[], [], [], []],
            [[], [], [], []],
            [[], [], [], []],
            [[], [], [], []],
        ]
        game_state.sector_params = sector_params

        game_state.current_time.set_string_presentation("2.5")
        return game_state
    def generate_current_state(cls) -> GameState:
        game_state: GameState = GameState()
        person_unit_params: PersonUnitParams = PersonUnitParams()
        person_unit_params.troop_amount = 2
        person_unit_params.organization = 3
        person_unit_params.enemy_troop_amount = 3
        person_unit_params.enemy_organization = 4

        person_unit_params.experience = 4
        person_unit_params.overlap = 5
        person_unit_params.speed = 6
        person_unit_params.spent_time = 7
        game_state.person_unit_params = person_unit_params

        sector_params: SectorParams = SectorParams()
        sector_params.enemyUnitToSectors = [
            [[], [Unit().set(11, "motorized"),
                  Unit().set(11, "motorized")], [], []],
            [[], [], [], []],
            [[], [], [], []],
            [[], [], [], []],
        ]
        game_state.sector_params = sector_params
        game_state.current_time.set_string_presentation("4.5")
        return game_state
Ejemplo n.º 6
0
 def _push_current_state(self, awards: AiAwards, game_state: GameState):
     json.dump(
         {
             "game_state": game_state.as_json(),
             "awards": awards.as_json()
         },
         self._game_state_log_file,
         indent=4)
     self._game_state_log_file.write(",\n")
Ejemplo n.º 7
0
    def setUp(self):
        super().setUp()
        self.awards: AiAwards = AiAwards()
        self.awards.troop_amount = 1
        self.awards.experience = 2
        self.awards.organization = 3
        self.awards.overlap = 4

        self.game_state: GameState = GameState()
        self.game_duration: int = 4
        self.game_state.current_time.set_string_presentation(
            str(self.game_duration))

        for i in range(self.game_duration - 1):
            game_state: GameState = GameState()
            game_state.current_time.set_string_presentation(str(i))
            self.logger.save_to_game_record_file(self.awards, game_state)

        self.logger.save_end_game_state(self.awards, self.game_state)
Ejemplo n.º 8
0
    def generate_test_game(game_id: int,
                           player_id: int,
                           generate_unit_with_various_state: bool,
                           map_bounds: Bounds = None) -> GameState:
        game: GameState = GameState()
        game.id = game_id
        game.users = {player_id: {}}

        if generate_unit_with_various_state:
            game.game_units = TestDataGenerator.generate_unit_with_various_state(
                map_bounds)
        else:
            game.game_units = TestDataGenerator.generate_test_unit_dictionary()
        # "loserId": None,
        # "status": None,
        # "units": {},
        # "currentGameTime": None,
        # "battleMatrix": None,
        return game