Ejemplo n.º 1
0
    def _get_controller(self, players):
        controller = Mock()
        controller._states = []
        controller._scores = None
        controller.get_players.return_value = players
        controller.get_states.return_value = controller._states
        controller.get_scores.side_effect = lambda: controller._scores

        def report_state(state):
            controller._states.append(state)

        def get_move(player, heap_sizes, serialize, deserialize):
            allowed = [i for i, size in enumerate(heap_sizes)
                       if size > 0]
            heap_number = random.choice(allowed)
            removed_stones = random.randint(1, heap_sizes[heap_number])
            return (heap_number, removed_stones)

        def finish_game(scores):
            controller._scores = scores

        controller.report_state.side_effect = report_state
        controller.get_move.side_effect = get_move
        controller.finish_game.side_effect = finish_game
        return controller
Ejemplo n.º 2
0
    def _get_simulator(self, players):
        simulator = Mock()
        simulator._states = []
        simulator._scores = None
        simulator.get_players.return_value = players
        simulator.get_states.return_value = simulator._states
        simulator.get_scores.side_effect = lambda: simulator._scores
        simulator.is_finished = False

        def report_state(state):
            simulator._states.append(state)

        def get_move(player, state, serialize, deserialize):
            return (0, 0)

        def finish_game(scores):
            simulator._scores = scores
            simulator.is_finished = True

        simulator.report_state.side_effect = report_state
        simulator.get_move.side_effect = get_move
        simulator.finish_game.side_effect = finish_game
        return simulator