本文整理汇总了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,
#.........这里部分代码省略.........