games.py 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. from leader import leadersStorage
  2. from players_storage import playerStorage
  3. from team import Team
  4. def get_history():
  5. games = [
  6. get_game_1(),
  7. get_game_2(),
  8. get_game_3(),
  9. get_game_4(),
  10. get_game_5(),
  11. get_game_6(),
  12. get_game_7(),
  13. get_game_8(),
  14. get_game_9(),
  15. get_game_10()
  16. ]
  17. return games
  18. def get_games_serializable(games: list):
  19. d = dict()
  20. for game in games:
  21. d[game.index] = game.get_serializable()
  22. return d
  23. class Game:
  24. def __init__(self, index: int, turns: int, end: str):
  25. self.teams = [] # Команды
  26. self.index = index # Номер партии
  27. self.turns = turns # Кол-во ходов
  28. self.end = end # Причина окончания игры
  29. def print(self):
  30. print('A game with ' + str(len(self.teams)) + ' teams')
  31. for team in self.teams:
  32. team.print()
  33. print()
  34. def get_serializable(self):
  35. teams = []
  36. for team in self.teams:
  37. teams.append(team.get_serializable())
  38. res = dict()
  39. res['game_id'] = self.index
  40. res['teams'] = teams
  41. res['turns'] = self.turns
  42. res['reason'] = self.end
  43. return res
  44. def player_took_part(self, name: str):
  45. for team in self.teams:
  46. for player in team.players:
  47. if player.name == name:
  48. return True
  49. return False
  50. # Игроки
  51. _George_Best_7 = playerStorage.player('George_Best_7')
  52. _Leodroid = playerStorage.player('Leodroid')
  53. _Veldy = playerStorage.player('Veldy')
  54. _Neodim = playerStorage.player('Neodim')
  55. _SaltySoup = playerStorage.player('SaltySoup')
  56. _The_Losst = playerStorage.player('The_Losst')
  57. _MaxBelol = playerStorage.player('MaxBelol')
  58. _TinyClayMan = playerStorage.player('TinyClayMan')
  59. _TheDavidGame = playerStorage.player('TheDavidGame')
  60. _Ortreke = playerStorage.player('Ortreke')
  61. _Cvytik = playerStorage.player('Cvytik')
  62. _StillWiseOut = playerStorage.player('StillWiseOut')
  63. _Kris = playerStorage.player('Kris')
  64. _Losyashboi = playerStorage.player('Losyashboi')
  65. # Лидеры
  66. _Friedrich_Barbarossa = leadersStorage.leader(46)
  67. _Trayan = leadersStorage.leader(42)
  68. _Peter_the_Great = leadersStorage.leader(28)
  69. _Mansa_Musa = leadersStorage.leader(23) # Мали
  70. _Hojo_Tokimune = leadersStorage.leader(49)
  71. _Rusvelt_Progressive = leadersStorage.leader(39)
  72. _Pedru_II = leadersStorage.leader(31) # Бразилия
  73. _Chaka = leadersStorage.leader(53) # Зулусы
  74. _Yadviga = leadersStorage.leader(57) # Польша
  75. _Cleopatra = leadersStorage.leader(18)
  76. _Rusvelt_Vsadnik = leadersStorage.leader(40)
  77. _Amanitore = leadersStorage.leader(3) # Нубия
  78. _Alieanora_England = leadersStorage.leader(1)
  79. _Gilgamesh = leadersStorage.leader(9) # Шумеры
  80. _Vasilii_II = leadersStorage.leader(5)
  81. _Chingishan = leadersStorage.leader(55) # Монголия
  82. _Pochatok = leadersStorage.leader(30) # Инки
  83. _Perikl = leadersStorage.leader(32) # Греция
  84. _Saladin = leadersStorage.leader(34) # Аравия
  85. _Ekatetina_Medichi_Velikolepnaya = leadersStorage.leader(14) # Франция
  86. _Robert_Brus = leadersStorage.leader(33) # Шотландия
  87. _Ambiotriks = leadersStorage.leader(4) # Галлия
  88. _Hubilai_Mongol = leadersStorage.leader(50) # Монголия
  89. _Vilgelmina = leadersStorage.leader(7) # Нидерланды
  90. _Wilfried_Lorie = leadersStorage.leader(44)
  91. _Simon_Bolivar = leadersStorage.leader(35)
  92. _viktoria = leadersStorage.leader(6)
  93. _Montesuma = leadersStorage.leader(27)
  94. _Didona = leadersStorage.leader(13)
  95. _Ish_vak = leadersStorage.leader(16)
  96. _Hammurapi = leadersStorage.leader(47)
  97. _Matiash_I = leadersStorage.leader(24)
  98. _Kristina_I = leadersStorage.leader(20)
  99. _Tamara = leadersStorage.leader(38)
  100. _Tin_Huan = leadersStorage.leader(52)
  101. _Chieu_Vietnam = leadersStorage.leader(56)
  102. _Juan_III = leadersStorage.leader(15)
  103. _Javarman = leadersStorage.leader(11)
  104. _Kupe = leadersStorage.leader(21)
  105. _PoundMaker = leadersStorage.leader(29)
  106. _Kir = leadersStorage.leader(17)
  107. _Menelik2 = leadersStorage.leader(26)
  108. def get_game_1():
  109. game = Game(index=1, turns=144, end='Суп ушёл варить пельмени')
  110. team1 = Team()
  111. team1.add_player(_George_Best_7, _Friedrich_Barbarossa)
  112. team1.add_player(_Leodroid, _Trayan)
  113. team1.add_player(_Veldy, _Peter_the_Great)
  114. team2 = Team()
  115. team2.add_player(_Neodim, _Mansa_Musa)
  116. team2.add_player(_SaltySoup, _Hojo_Tokimune)
  117. team2.add_player(_The_Losst, _Rusvelt_Progressive)
  118. game.teams.append(team1)
  119. game.teams.append(team2)
  120. return game
  121. def get_game_2():
  122. game = Game(index=2, turns=148, end='Культурная')
  123. team1 = Team()
  124. team1.add_player(_George_Best_7, _Pedru_II)
  125. team2 = Team()
  126. team2.add_player(_Neodim, _Peter_the_Great)
  127. team3 = Team()
  128. team3.add_player(_Leodroid, _Chaka)
  129. team4 = Team()
  130. team4.add_player(_MaxBelol, _Yadviga)
  131. game.teams.append(team1)
  132. game.teams.append(team2)
  133. game.teams.append(team3)
  134. game.teams.append(team4)
  135. return game
  136. def get_game_3():
  137. game = Game(index=3, turns=236, end='Дипломатическая')
  138. team0 = Team()
  139. team0.add_player(_George_Best_7, _Rusvelt_Vsadnik)
  140. team1 = Team()
  141. team1.add_player(_Leodroid, _Cleopatra)
  142. team2 = Team()
  143. team2.add_player(_TheDavidGame, _Amanitore)
  144. team3 = Team()
  145. team3.add_player(_TinyClayMan, _Alieanora_England)
  146. team4 = Team()
  147. team4.add_player(_Neodim, _Peter_the_Great)
  148. team5 = Team()
  149. team5.add_player(_The_Losst, _Gilgamesh)
  150. game.teams = [team0, team1, team2, team3, team4, team5]
  151. return game
  152. def get_game_4():
  153. game = Game(index=4, turns=215, end='Религиозная')
  154. team0 = Team()
  155. team0.add_player(_Ortreke, _Pochatok)
  156. team1 = Team()
  157. team1.add_player(_Neodim, _Vasilii_II)
  158. team2 = Team()
  159. team2.add_player(_Leodroid, _Chingishan)
  160. team3 = Team()
  161. team3.add_player(_Cvytik, _Perikl)
  162. team4 = Team()
  163. team4.add_player(_TinyClayMan, _Saladin)
  164. team5 = Team()
  165. team5.add_player(_George_Best_7, _Ekatetina_Medichi_Velikolepnaya)
  166. game.teams = [team0, team1, team2, team3, team4, team5]
  167. return game
  168. def get_game_5():
  169. game = Game(index=5, turns=192, end='Религиозная')
  170. team0 = Team()
  171. team0.add_player(_George_Best_7, _Yadviga)
  172. team0.add_player(_MaxBelol, _Robert_Brus)
  173. team0.add_player(_Neodim, _Peter_the_Great)
  174. team1 = Team()
  175. team1.add_player(_Leodroid, _Ambiotriks)
  176. team1.add_player(_TinyClayMan, _Hubilai_Mongol)
  177. game.teams.append(team0)
  178. game.teams.append(team1)
  179. return game
  180. def get_game_6():
  181. game = Game(index=6, turns=182, end='Дипломатическая')
  182. team0 = Team()
  183. team0.add_player(_Neodim, _Peter_the_Great)
  184. team0.add_player(_Ortreke, _Montesuma)
  185. team0.add_player(_SaltySoup, _Friedrich_Barbarossa)
  186. team0.add_player(_StillWiseOut, _Didona)
  187. team0.add_player(_The_Losst, _Ish_vak)
  188. team1 = Team()
  189. team1.add_player(_Cvytik, _Vilgelmina)
  190. team1.add_player(_George_Best_7, _Wilfried_Lorie)
  191. team1.add_player(_Leodroid, _Hojo_Tokimune)
  192. team1.add_player(_MaxBelol, _Simon_Bolivar)
  193. team1.add_player(_TinyClayMan, _viktoria)
  194. game.teams.append(team0)
  195. game.teams.append(team1)
  196. return game
  197. def get_game_7():
  198. game = Game(index=7, turns=241, end='Дипломатическая')
  199. team0 = Team()
  200. team0.add_player(_George_Best_7, _Hammurapi)
  201. team1 = Team()
  202. team1.add_player(_Neodim, _Peter_the_Great)
  203. team2 = Team()
  204. team2.add_player(_TinyClayMan, _Matiash_I)
  205. team3 = Team()
  206. team3.add_player(_MaxBelol, _Kristina_I)
  207. team4 = Team()
  208. team4.add_player(_Leodroid, _Tamara)
  209. team5 = Team()
  210. team5.add_player(_Kris, _Friedrich_Barbarossa)
  211. team6 = Team()
  212. team6.add_player(_Losyashboi, _Ish_vak)
  213. game.teams = [team0, team1, team2, team3, team4, team5, team6]
  214. return game
  215. def get_game_8():
  216. game = Game(index=8, turns=220, end='Дипломатическая')
  217. team0 = Team()
  218. team0.add_player(_George_Best_7, _Tin_Huan)
  219. team1 = Team()
  220. team1.add_player(_Leodroid, _Chieu_Vietnam)
  221. team2 = Team()
  222. team2.add_player(_Losyashboi, _Hojo_Tokimune)
  223. team3 = Team()
  224. team3.add_player(_TinyClayMan, _Juan_III)
  225. game.teams = [team0, team1, team2, team3, ]
  226. return game
  227. def get_game_9():
  228. game = Game(index=9, turns=148, end='Религиозная')
  229. team0 = Team()
  230. team0.add_player(_Leodroid, _Javarman)
  231. team1 = Team()
  232. team1.add_player(_George_Best_7, _Kupe)
  233. team2 = Team()
  234. team2.add_player(_TinyClayMan, _PoundMaker)
  235. team3 = Team()
  236. team3.add_player(_Kris, _Hojo_Tokimune)
  237. game.teams = [team0, team1, team2, team3, ]
  238. return game
  239. def get_game_10():
  240. game = Game(index=10, turns=72, end='Военная')
  241. team0 = Team()
  242. team0.add_player(_George_Best_7, _Kir)
  243. team1 = Team()
  244. team1.add_player(_Leodroid, _Menelik2)
  245. game.teams = [team0, team1, ]
  246. return game