当前位置: 首页>>代码示例>>Python>>正文


Python Helper.optimize_draft方法代码示例

本文整理汇总了Python中Helper.optimize_draft方法的典型用法代码示例。如果您正苦于以下问题:Python Helper.optimize_draft方法的具体用法?Python Helper.optimize_draft怎么用?Python Helper.optimize_draft使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Helper的用法示例。


在下文中一共展示了Helper.optimize_draft方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: draft

# 需要导入模块: import Helper [as 别名]
# 或者: from Helper import optimize_draft [as 别名]
def draft(state):
    """
    Suggests draft picks to user and creates a file containing all drafted state.teams

    :param state: current state of variables
    :return: .txt file containing players on every team
    """

    # Establish database connection
    connection = sqlite3.connect("FantasyBasketball.db")
    cursor = connection.cursor()

    # Get user-inputted variables
    pick_num = int(raw_input("What is your first round pick?: "))
    rounds_num = int(raw_input("How many rounds are in the draft?: "))
    participants = int(raw_input("How many players are in the league?: "))

    # Determine which pick numbers a user has
    pick_numbers = [(participants * (r - 1)) + (pick_num if r % 2 else (participants + 1 - pick_num))
                    for r in range(1, rounds_num + 1)]

    # Initialize variables
    taken = []
    removed = []
    all_users = []
    my_team = {}
    end = False
    contribution = defaultdict(lambda: defaultdict(float))
    ME = 'chris'

    # Use only top players to speed up integer linear program
    top_players = []
    row_names = [stat_name[0] for stat_name in cursor.execute("""SELECT * FROM Contributions;""").description][1:]
    for row in cursor.execute("""SELECT * FROM Contributions ORDER BY contribution DESC LIMIT {};""".format(
            str(participants * rounds_num))).fetchall():
        name = str(row[0]).lower()
        for i, stat in enumerate(row[1:]):
            contribution[name][row_names[i]] = stat
        top_players.append(name.lower())

    # Store player names for input error checking
    all_players = [str(row[0]).lower() for row in cursor.execute("""SELECT name FROM Contributions;""")]

    # Determine where players are projected to be picked
    projected = defaultdict(int)
    with open('files/draft/projected_picks.txt') as f2:
        for i, line in enumerate(f2.readlines()):
            name = line.lower().rstrip()
            projected[name] = i + 1

    for pick in range(1, (participants * rounds_num) + 1):

        # Breaks upon user request
        if end:
            break

        # Re-initialize success variable
        success = False

        print '\nPick {} in progress...'.format(pick)

        while not success:

            # Print draft recommendations on user's pick
            if pick in pick_numbers or pick == 1:
                print ''
                for draft_pick in Helper.optimize_draft(pick_numbers, projected, contribution, top_players, my_team,
                                                        taken + removed + my_team.keys(), pick):
                    if draft_pick[1] == '0':
                        print '{}. {} - DRAFTED'.format(str(my_team[draft_pick[0]]), draft_pick[0].title())
                    else:
                        print '{}. {}'.format(draft_pick[1], draft_pick[0].title())

            # \ before a name indicates a new player
            player = raw_input("\nEnter a player name: ").lower()

            # Allows user to end function
            if player == "end":
                end = True
                success = True

            # Removes players from optimal draft calculation
            elif player == 'remove':
                removed.append(raw_input('Who would you like to remove?: '))
                print ''

            # Allows user to swap picks
            elif player == 'swap':
                old_pick = int(raw_input('Which pick are you losing?: '))
                new_pick = int(raw_input('Which pick are you getting?: '))
                print ''

                if old_pick in pick_numbers:
                    pick_numbers.pop(pick_numbers.index(old_pick))
                    pick_numbers.append(new_pick)

            # Calculates optimal draft upon request
            elif player == 'draft' and pick not in pick_numbers and pick != 1:
                print ''
                for draft_pick in Helper.optimize_draft(pick_numbers, projected, contribution, top_players, my_team,
#.........这里部分代码省略.........
开发者ID:crsabbagh,项目名称:fantasy-bball,代码行数:103,代码来源:Services_old.py


注:本文中的Helper.optimize_draft方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。