leader.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. class Leader:
  2. def __init__(self, name: str, nation: str, index: int):
  3. self.name = name
  4. self.nationName = nation
  5. self.index = index
  6. self.nation = Nation(0, '') # плесйхолдер
  7. self.games_info = []
  8. def get_serializable(self):
  9. d = dict()
  10. d['leader_id'] = self.index
  11. d['name'] = self.name
  12. d['nation_name'] = self.nationName
  13. d['nation_id'] = self.nation.index
  14. arr = []
  15. for i in self.games_info:
  16. arr.append(i.get_serializable())
  17. d['games_info'] = arr
  18. return d
  19. class LeadersStorage:
  20. def __init__(self, leaders: list):
  21. self.leaders = leaders
  22. def leader(self, index: int):
  23. for i in self.leaders:
  24. if i.index == index:
  25. return i
  26. def get_serializable(self):
  27. d = dict()
  28. for i in self.leaders:
  29. d[i.index] = i.get_serializable()
  30. return d
  31. class Nation:
  32. def __init__(self, index: int, name: str):
  33. self.index = index
  34. self.name = name
  35. self.games_info = []
  36. self.__leaders = []
  37. def add_leader(self, leader: Leader):
  38. self.__leaders.append(leader)
  39. def get_serializable(self):
  40. d = dict()
  41. d['nation_id'] = self.index
  42. d['name'] = self.name
  43. arr = []
  44. for i in self.games_info:
  45. arr.append(i.get_serializable())
  46. d['games_info'] = arr
  47. return d
  48. Leaders_list = [
  49. Leader('Александр', 'Македония', 0),
  50. Leader('Алиенора Аквитанская (Англия)', 'Англия', 1),
  51. Leader('Алиенора Аквитанская (Франция)', 'Франция', 2),
  52. Leader('Аманиторе', 'Нубия', 3),
  53. Leader('Амбиорикс', 'Галлия', 4),
  54. Leader('Василий II', 'Византия (Россия 2)', 5),
  55. Leader('Виктория', 'Англия', 6),
  56. Leader('Вильгельмина', 'Нидерланды', 7),
  57. Leader('Ганди', 'Индия', 8),
  58. Leader('Гильгамеш', 'Шумер', 9),
  59. Leader('Горго', 'Греция', 10),
  60. Leader('Джайаварман VII', 'Кхмеры', 11),
  61. Leader('Джон Кэртин', 'Австралия', 12),
  62. Leader('Дидона', 'Финикия', 13),
  63. Leader('Екатерина Медичи (Великолепная)', 'Франция', 14),
  64. Leader('Жуан III', 'Португалия', 15),
  65. Leader('Иш-Вак-Чан-Ахав', 'Майя', 16),
  66. Leader('Кир II', 'Персия', 17),
  67. Leader('Клеопатра', 'Египет', 18),
  68. Leader('Константин Острожский', 'Волынь', 19),
  69. Leader('Кристина', 'Швеция', 20),
  70. Leader('Купе', 'Маори', 21),
  71. Leader('Лаутаро', 'Мапуче', 22),
  72. Leader('Манса Муса', 'Мали', 23),
  73. Leader('Матьяш I', 'Венгрия', 24),
  74. Leader('Мвемба а Нзинга', 'Конго', 25),
  75. Leader('Менелик II', 'Эфиопия', 26),
  76. Leader('Монтесума', 'Ацтеки', 27),
  77. Leader('Пётр Великий', 'Россия', 28),
  78. Leader('Паундмейкер', 'Кри', 29),
  79. Leader('Пачакутек', 'Инки', 30),
  80. Leader('Педру II', 'Бразилия', 31),
  81. Leader('Перикл', 'Греция', 32),
  82. Leader('Роберт Брюс', 'Шотландия', 33),
  83. Leader('Саладин', 'Аравия', 34),
  84. Leader('Симон Боливар', 'Колумбия', 35),
  85. Leader('Сондок', 'Корея', 36),
  86. Leader('Сулейман', 'Османы', 37),
  87. Leader('Тамара', 'Грузия', 38),
  88. Leader('Теодор Рузвельт (Прогрессивист)', 'США', 39),
  89. Leader('Теодор Рузвельт (Мужественный всадник)', 'США', 40),
  90. Leader('Томирис', 'Скифия', 41),
  91. Leader('Траян', 'Рим', 42),
  92. Leader('Трибхувана', 'Индонезия', 43),
  93. Leader('Уилфрид Лорье', 'Канада', 44),
  94. Leader('Филипп II', 'Испания', 45),
  95. Leader('Фридрих Барбаросса', 'Германия', 46),
  96. Leader('Хаммурапи', 'Вавилон', 47),
  97. Leader('Харальд Суровый', 'Норвегия', 48),
  98. Leader('Ходзё Токимунэ', 'Япония', 49),
  99. Leader('Хубилай (Монголия)', 'Монголия', 50),
  100. Leader('Хубилай (Китай)', 'Китай', 51),
  101. Leader('Цинь Шихуанди', 'Китай', 52),
  102. Leader('Чака', 'Зулусы', 53),
  103. Leader('Чандрагупта', 'Индия', 54),
  104. Leader('Чингисхан', 'Монголия', 55),
  105. Leader('Чьеу Тхи Чинь', 'Вьетнам', 56),
  106. Leader('Ядвига', 'Польша', 57),
  107. Leader('Екатерина Медичи (Чёрная королева)', 'Франция', 58),
  108. ]
  109. leadersStorage = LeadersStorage(Leaders_list)