Exemple #1
0
 def __create_default_game_state(self, score_rule: ScoreRule) -> GameState:
     empty_scheme = None
     player1 = Player(1, empty_scheme, ControllerType.player.value)
     player2 = Player(2, empty_scheme, ControllerType.player.value)
     return GameState(size=Point(10, 10),
                      initial_position=InitialPosition.empty,
                      score_rule=score_rule,
                      players=(player1, player2))
Exemple #2
0
 def __start_game(self):
     score_rule = rules.SCORE_RULE_FROM_NAME[
         self._score_rule_combobox.currentText()]
     initial_pos = rules.INITIAL_POSITION_FROM_RULE[
         self._initial_position_combobox.currentText()]
     width = self.width_slider.value
     height = self.height_slider.value
     players = self.players_config.get_players()
     game_state = GameState(size=Point(width, height),
                            score_rule=score_rule,
                            initial_position=initial_pos,
                            players=players)
     self.__star_game_window(game_state)
Exemple #3
0
    def test_ai_make_turn(self):
        class TargetAi(Controller):
            def __init__(self, position_to_move: Point):
                super().__init__()
                self._position_to_move = position_to_move

            @property
            def name(self) -> str:
                return ''

            @property
            def is_ai(self) -> bool:
                return True

            def get_position(self, game_state: GameState,
                             player: Player) -> Point:
                return self._position_to_move

        first_player_pos = Point(0, 0)
        second_player_pos = Point(1, 0)
        first_player = Player(1, None, TargetAi(first_player_pos))
        second_player = Player(2, None, TargetAi(second_player_pos))
        game_state = GameState(size=Point(10, 10),
                               score_rule=ScoreRule.russian,
                               initial_position=InitialPosition.empty,
                               players=(first_player, second_player))
        game_state.ai_make_turn()
        game_state.ai_make_turn()
        for pos in self._iterate_over_game_field(game_state.game_field):
            cell = game_state.game_field[pos]
            if pos == first_player_pos:
                if cell.real_owner != first_player:
                    self.fail()
            elif pos == second_player_pos:
                if cell.real_owner != second_player:
                    self.fail()
            elif cell.real_owner != game_state.empty_player:
                self.fail()