This repository has been archived on 2024-08-23. You can view files and clone it, but cannot push or open issues or pull requests.
lessons/Python/OOP2/task4.py
2023-07-16 13:23:25 +00:00

46 lines
1.0 KiB
Python

import random
from dataclasses import dataclass, field
from typing import Self
@dataclass
class _Base:
id: int
level: int = 1
@dataclass
class Hero(_Base):
soliders: list["Solider"] = field(default_factory=list)
def level_up(self: Self) -> Self:
self.level += 1
return self
@dataclass
class Solider(_Base):
def follow(self: Self, hero: Hero) -> None:
print(f"Иду за героем {hero.id}")
def main() -> None:
amount_of_players = 2
heroes = [Hero(i) for i in range(2)]
for i in range(amount_of_players, amount_of_players * 3 + 1):
solider = Solider(i)
random.choice(heroes).soliders.append(solider)
amount_of_soliders = [len(hero.soliders) for hero in heroes]
winner_id = amount_of_soliders.index(max(amount_of_soliders))
winner = heroes[winner_id]
loser_id = amount_of_soliders.index(max(amount_of_soliders))
loser = heroes[loser_id]
winner.level_up()
print(winner)
random.choice(loser.soliders).follow(winner)
if __name__ == "__main__":
main()