Generate a list of ports using the given options.

    port options supported:
    - Opt.empty ->
    - Opt.random ->
    - Opt.preset -> ports are in default locations
    - Opt.debug -> alias for Opt.preset

    :param port_opts: Opt
    :return: list(Port)

def _get_ports(port_opts):
    """
    Generate a list of ports using the given options.

    port options supported:
    - Opt.empty ->
    - Opt.random ->
    - Opt.preset -> ports are in default locations
    - Opt.debug -> alias for Opt.preset

    :param port_opts: Opt
    :return: list(Port)
    """
    if port_opts in [Opt.preset, Opt.debug]:
        _preset_ports = [(1, 'NW', catan.board.PortType.any3),
                         (2, 'W', catan.board.PortType.wood),
                         (4, 'W', catan.board.PortType.brick),
                         (5, 'SW', catan.board.PortType.any3),
                         (6, 'SE', catan.board.PortType.any3),
                         (8, 'SE', catan.board.PortType.sheep),
                         (9, 'E', catan.board.PortType.any3),
                         (10, 'NE', catan.board.PortType.ore),
                         (12, 'NE', catan.board.PortType.wheat)]
        return [catan.board.Port(tile, dir, port_type)
                for tile, dir, port_type in _preset_ports]
    elif port_opts in [Opt.empty, Opt.random]:
        logging.warning('{} option not yet implemented'.format(port_opts))
        return []