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))
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)
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()