Advertisement
Guest User

Tribe pick script v0.1

a guest
Jan 28th, 2015
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. from math import *
  2. import random
  3.  
  4. def calculateTeamScore(cap, snipe, hof, ld, o, gamesense):
  5. s = 0
  6.  
  7. if snipe is None: #Double LD
  8. s = (cap/10.0)*25 + (hof/10.0)*20 + (ld/20.0)*25 + (o/30.0)*20 + (gamesense/70.0)*10
  9. else: #Sniper + LD
  10. s = (cap/10.0)*25 + (hof/10.0)*15 + (ld/10.0)*15 + (snipe/10.0)*15 + (o/30.0)*20 + (gamesense/70.0)*10
  11.  
  12. return s
  13.  
  14. def calculatePlayerScore(playerdb, playername):
  15. s = 0
  16.  
  17. cap = playerdb[playername]['cap']
  18. snipe = playerdb[playername]['snipe']
  19. hof = playerdb[playername]['hof']
  20. ld = playerdb[playername]['ld']
  21. o = playerdb[playername]['o']
  22. gamesense = playerdb[playername]['gamesense']
  23.  
  24. s = (cap/10.0)*25 + (hof/10.0)*15 + (ld/10.0)*15 + (snipe/10.0)*15 + (o/10.0)*20 + (gamesense/10.0)*10
  25.  
  26. return s
  27.  
  28. def randomTeamGen(playerdb):
  29. res = {'stack factor':0, 'BE':{}, 'DS':{}}
  30.  
  31. stackage = 0
  32.  
  33. playerlist = []
  34.  
  35. for player, pval in playerdb.iteritems():
  36. playerlist.append(pval['name'])
  37.  
  38. stacked = True
  39. i = 0
  40.  
  41. while stacked:
  42. picklist = playerlist
  43.  
  44. #Generate BE
  45. belist = random.sample(picklist, 7)
  46.  
  47. #Calculate BE Playerscore and remove from picks
  48. bescore = 0
  49.  
  50. for playername in belist:
  51. bescore += calculatePlayerScore(playerdb, playername)
  52. picklist.remove(playername)
  53.  
  54. bescore /= 7.0
  55.  
  56.  
  57.  
  58. #Generate DS
  59. dslist = random.sample(picklist, 7)
  60. #Calculate DS Playerscore
  61. dsscore = 0
  62.  
  63. for playername in dslist:
  64. dsscore += calculatePlayerScore(playerdb, playername)
  65.  
  66. dsscore /= 7.0
  67.  
  68. i += 1
  69.  
  70. stackage = abs(bescore-dsscore)
  71.  
  72. if stackage < 10 or i >= 5:
  73. stacked = False
  74.  
  75. res['stack factor'] = stackage
  76.  
  77. res['BE'] = belist
  78. res['DS'] = dslist
  79.  
  80. return res
  81.  
  82. mcoot = {'name':'mcoot', 'cap':0, 'snipe':6, 'hof':10, 'ld':6, 'o':7, 'gamesense':8}
  83. dodge = {'name':'dodge', 'cap':3, 'snipe':7, 'hof':8, 'ld':10, 'o':10, 'gamesense':9}
  84. oreo = {'name':'oreo', 'cap':2, 'snipe':3, 'hof':7, 'ld':9, 'o':9, 'gamesense':7}
  85. snowy = {'name':'snowy', 'cap':10, 'snipe':2, 'hof':4, 'ld':7, 'o':8, 'gamesense':8}
  86. vendetta = {'name':'vendetta', 'cap':5, 'snipe':8, 'hof':7, 'ld':10, 'o':9, 'gamesense':9}
  87. chatters = {'name':'chatters', 'cap':9, 'snipe':5, 'hof':2, 'ld':5, 'o':6, 'gamesense':7}
  88. jedics = {'name':'jedics', 'cap':1, 'snipe':0, 'hof':0, 'ld':0, 'o':5, 'gamesense':1}
  89. dubheem = {'name':'dubheem', 'cap':7, 'snipe':1, 'hof':7, 'ld':5, 'o':5, 'gamesense':7}
  90. wandlimb = {'name':'wandlimb', 'cap':7, 'snipe':3, 'hof':6, 'ld':7, 'o':8, 'gamesense':7}
  91. mysterion = {'name':'mysterion', 'cap':5, 'snipe':1, 'hof':6, 'ld':9, 'o':6, 'gamesense':9}
  92. souppot = {'name':'souppot', 'cap':6, 'snipe':3, 'hof':5, 'ld':7, 'o':7, 'gamesense':7}
  93. nightsword = {'name':'nightsword', 'cap':7, 'snipe':0, 'hof':0, 'ld':5, 'o':5, 'gamesense':8}
  94. lordjojot = {'name':'lordjojot', 'cap':6, 'snipe':6, 'hof':4, 'ld':5, 'o':5, 'gamesense':5}
  95. sanics = {'name':'sanics', 'cap':5, 'snipe':7, 'hof':3, 'ld':7, 'o':7, 'gamesense':6}
  96.  
  97. #Player DB
  98. players = {}
  99. players[mcoot['name']] = mcoot
  100. players[dodge['name']] = dodge
  101. players[oreo['name']] = oreo
  102. players[snowy['name']] = snowy
  103. players[vendetta['name']] = vendetta
  104. players[chatters['name']] = chatters
  105. players[jedics['name']] = jedics
  106. players[dubheem['name']] = dubheem
  107. players[wandlimb['name']] = wandlimb
  108. players[mysterion['name']] = mysterion
  109. players[souppot['name']] = souppot
  110. players[nightsword['name']] = nightsword
  111. players[lordjojot['name']] = lordjojot
  112. players[sanics['name']] = sanics
  113.  
  114. random.seed()
  115.  
  116. print randomTeamGen(players)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement