nations.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from leader import LeadersStorage, leadersStorage, Nation
  2. # Хранилище наций
  3. class NationsStorage:
  4. def __init__(self):
  5. self.__nations = []
  6. # Всем нациям поставить в соответствие лидеров, а лидерам нации
  7. def resolve_leaders_and_nations(self, leaders: LeadersStorage):
  8. i = 0
  9. for leader in leaders.leaders:
  10. if self.contains(leader.nationName):
  11. nation = self.nation(leader.nationName)
  12. nation.add_leader(leader)
  13. leader.nation = nation
  14. else:
  15. self.add_nation(Nation(i, leader.nationName))
  16. leader.nation = self.__nations[-1]
  17. i += 1
  18. # содержит ли список наицю по названию
  19. def contains(self, s: str):
  20. for i in self.__nations:
  21. if i.name == s:
  22. return True
  23. return False
  24. # получить нацию по названию
  25. def nation(self, s: str):
  26. for i in self.__nations:
  27. if i.name == s:
  28. return i
  29. # добавить нацию в список
  30. def add_nation(self, n: Nation):
  31. self.__nations.append(n)
  32. # получить список наций
  33. def get_nations(self):
  34. return self.__nations
  35. def get_serializable(self):
  36. d = dict()
  37. for i in self.__nations:
  38. d[i.index] = i.get_serializable()
  39. return d
  40. nations_storage = NationsStorage()
  41. nations_storage.resolve_leaders_and_nations(leadersStorage)