示例#1
0
def main():
    state = ConnectFourGame.initial_state()
    while True:
        winner = ConnectFourGame.get_winner(state)
        if winner is not None:
            dump_state(state)
            break
        legal_moves = ConnectFourGame.get_moves(state)[1]
        result = (
            MCTS(ConnectFourGame, state)
            .get_simulation_result(1000))
        move = result.move
        dump_state(state, result.root.children, move)
        if state.current_player == 0:
            while True:
                try:
                    move = int(input(''))
                    assert move in legal_moves
                    state = ConnectFourGame.apply_move(state, move)
                    break
                except (AssertionError, ValueError):
                    print(dumps({'error': 'That is not a legal move'}))
        else:
            state = ConnectFourGame.apply_move(state, move)