Guest User

Untitled

a guest
Sep 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.99 KB | None | 0 0
  1. import random
  2. from player import generate_player
  3. from team import League, Team
  4.  
  5. def generate_player():
  6. pass
  7.  
  8.  
  9. def main():
  10. #set up our data
  11. #generate some players
  12. players = []
  13. for i in range (100):
  14. players.append(generate_player())
  15.  
  16.  
  17.  
  18. #set up 6 teams
  19. teams = [
  20. Team('Chelsea'),
  21. Team('Man City'),
  22. Team('Arsenal'),
  23. Team('West Ham'),
  24. Team('Hull City'),
  25. Team('Swansea'),
  26. ]
  27.  
  28. for team in teams:
  29. for player_num in range(11):
  30. #give them 11 starting players
  31. selected_player = random.choice(players)
  32. team.players.append(selected_player)
  33. players.remove(selected_player)
  34.  
  35. #we have a single league
  36. first_league = League('Premiership League')
  37. first_league.set_teams(teams)
  38.  
  39. first_league.play_season()
  40.  
  41.  
  42.  
  43. print('a')
  44.  
  45. if __name__ == '__main__':
  46. main()
  47.  
  48. import random
  49.  
  50. class Players:
  51. """
  52. player is on a single team, with many other players
  53. players play in a game for a team
  54. """
  55. def __init__(self, name):
  56. self.name = name
  57.  
  58. #player skill rankings
  59. self.skill = skill
  60.  
  61. def salary(self):
  62. return 50000 + self.skill * 100
  63.  
  64.  
  65.  
  66. def generate_player():
  67. first_names = [
  68. 'Sophia', 'Jackson', 'Emma', 'Aiden', 'Olivia', 'Lucas', 'Ava', 'Liam', 'Mia', 'Noah', 'Isabella', 'Ethan',
  69. 'Riley', 'Mason', 'Aria', 'Caden', 'Zoe', 'Oliver', 'Charlotte', 'Elijah', 'Lily', 'Grayson', 'Layla', 'Jacob',
  70. 'Amelia', 'Michael', 'Emily', 'Benjamin', 'Madelyn', 'Carter', 'Aubrey', 'James', 'Adalyn', 'Jayden',
  71. 'Madison', 'Logan', 'Chloe', 'Alexander',
  72. ]
  73. first_name = random.choice(first_names)
  74. last_name = random.choice(last_name)
  75.  
  76. full_name = '{} {}'.format(first_name, last_name)
  77. # generate skill and salary
  78. skill = 10 + random.randint(0, 90)
  79.  
  80. return Player(full_name, skill)
  81.  
  82. import copy
  83. import random
  84.  
  85.  
  86. class Team:
  87. """
  88. Team has many players
  89. Team has a ranking in a league
  90. Team plays games against other teams
  91. Team has a single manager
  92. """
  93. def __init__(self,name):
  94. self.name = name
  95. self.players = []
  96.  
  97. self.wins = 0
  98. self.losses = 0
  99.  
  100. def rating(self):
  101. """
  102. what is the rating of the team
  103. """
  104. rating = 0
  105. for player in self.players:
  106. rating += player.skill
  107.  
  108. return rating
  109.  
  110. def __str__(self):
  111. return '{} {}'.format(self.name, self.rating())
  112.  
  113. class Manager:
  114. """
  115. runs a teams
  116. """
  117. pass
  118.  
  119. class Game:
  120. """
  121. plays a game between two teams
  122. game belongs to a league
  123. """
  124. def __init__(self, league, home_team, away_team):
  125. self.league = league
  126. self.home_team = home_team
  127. self.away_team = away_team
  128.  
  129. self.home_team_won = None
  130.  
  131. print('{} vs. {}'.format(self.home_team, self.away_team))
  132.  
  133.  
  134. def play(self):
  135. """
  136. play the game, return who won
  137. True means the home team won, False means the away team won
  138. """
  139. print ('Play begins')
  140. #insert game here
  141.  
  142. print ('Play ends')
  143. if self.home_team.rating() > self.away_team.rating():
  144. print ('{} wins'.format(self.home_team))
  145. self.home_team_won = True
  146. else:
  147. print('{} wins.'.format(self.away_team))
  148. self.home_team_won = False
  149.  
  150.  
  151. class League:
  152. """
  153. league has many teams
  154. each team is going to have a ranking within this league
  155. """
  156. def __init__(self, name):
  157. self.name = name
  158. self.teams = []
  159.  
  160. def set_teams(self, teams):
  161. self.teams = teams
  162.  
  163. def play_season(self):
  164. """
  165. play 10 games between all the teams
  166. """
  167. print ('Season begins')
  168. for i in range(10):
  169. self.play_round()
  170. print('Season ends')
  171.  
  172. def play_round(self):
  173. """
  174. play a round, which is 3 games
  175. """
  176. print('Round begins')
  177. num_teams = len(self.teams)
  178. num_games = num_teams // 2
  179.  
  180. teams_to_play = copy.copy(self.teams)
  181.  
  182. for game_num in range(num_games):
  183. home_team = random.choice(teams_to_play)
  184. teams_to_play.remove(home_team)
  185. away_team = random.choice(teams_to_play)
  186. teams_to_play.remove(away_team)
  187.  
  188. game = Game(self, home_team, away_team)
  189. game.play()
  190. self.resolve_game(game)
  191.  
  192.  
  193. print('Round ends')
  194.  
  195. #ladder status
  196. self.ladder()
  197.  
  198. def ladder(self):
  199. for team in sorted(self.teams, key= lambda t: t.wins):
  200. print('{} {} wins'.format(team, team.wins))
  201.  
  202. def resolve_game(self, game):
  203. if game.home_team_won:
  204. # home team won
  205. game.home_team.wins += 1
  206. game.away_team.losses += 1
  207.  
  208. else:
  209. #away team won
  210. game.away_team.wins += 1
  211. game.home_team.losses += 1
Add Comment
Please, Sign In to add comment