mirror of
https://github.com/DavidGailleton/42-Piscine_Python.git
synced 2026-03-14 05:06:55 +01:00
36 lines
1.7 KiB
Python
36 lines
1.7 KiB
Python
class Player:
|
|
__name: str
|
|
__achievements: set[str]
|
|
|
|
def __init__(self, name:str, achievements: set[str]) -> None:
|
|
self.__name = name
|
|
self.__achievements = achievements
|
|
|
|
def get_name(self) -> str:
|
|
return self.__name
|
|
|
|
def get_achievements(self) -> set[str]:
|
|
return self.__achievements
|
|
|
|
|
|
if __name__ == "__main__":
|
|
players = [
|
|
Player("Alice", set(('first_kill', 'level_10', 'treasure_hunter', 'speed_demon'))),
|
|
Player("Bob",set(('first_kill', 'level_10', 'boss_slayer', 'collector'))),
|
|
Player("Charlie", set(('level_10', 'treasure_hunter', 'boss_slayer', 'speed_demon', 'perfectionist')))
|
|
]
|
|
print("=== Achievement Tracker System ===\n")
|
|
for n in players:
|
|
print(f"Player {n.get_name()} achievements: {n.get_achievements()}")
|
|
print("\n=== Achievement Analytics ===")
|
|
unique_achievements = players[0].get_achievements() | players[1].get_achievements() | players[2].get_achievements()
|
|
print(f"All unique achievements: {unique_achievements}")
|
|
print(f"Total unique achievements: {len(unique_achievements)}")
|
|
common_achievements = players[0].get_achievements() & players[1].get_achievements() & players[2].get_achievements()
|
|
print(f"\nCommon to all players: {common_achievements}")
|
|
p0_achievements = players[0].get_achievements() - players[1].get_achievements() - players[2].get_achievements()
|
|
p1_achievements = players[0].get_achievements() - players[1].get_achievements() - players[2].get_achievements()
|
|
p2_achievements = players[0].get_achievements() - players[1].get_achievements() - players[2].get_achievements()
|
|
print(f"Rare achievements (1 player): {rare_achievements}")
|
|
|