mirror of
https://github.com/DavidGailleton/42-Piscine_Python.git
synced 2026-03-13 20:56:54 +01:00
03/03 WIP
This commit is contained in:
@@ -1,35 +1,30 @@
|
|||||||
class Player:
|
def tracker_system(players: dict[str, list[str]]) -> None:
|
||||||
__name: str
|
print("=== Achievement Tracker System ===\n")
|
||||||
__achievements: set[str]
|
for player in players:
|
||||||
|
print(f"Player {player} achievements: {set((players[player]))}")
|
||||||
def __init__(self, name:str, achievements: set[str]) -> None:
|
print("\n=== Achievement Analytics ===")
|
||||||
self.__name = name
|
unique_achievements: set[str] = set(())
|
||||||
self.__achievements = achievements
|
for player in players:
|
||||||
|
unique_achievements = unique_achievements | set((players[player]))
|
||||||
def get_name(self) -> str:
|
print(f"All unique achievements: {unique_achievements}")
|
||||||
return self.__name
|
print(f"Total unique achievements: {len(unique_achievements)}")
|
||||||
|
common_achievements: set[str] = unique_achievements.intersection(players)
|
||||||
def get_achievements(self) -> set[str]:
|
print(f"\nCommon to all players: {common_achievements}")
|
||||||
return self.__achievements
|
rare_achievements: set[str] = set(())
|
||||||
|
for player in players:
|
||||||
|
temp = set((players[player]))
|
||||||
|
for other in players:
|
||||||
|
if other != player:
|
||||||
|
temp = temp - set((players[other]))
|
||||||
|
rare_achievements = rare_achievements & temp
|
||||||
|
print(f"Rare achievements (1 player): {rare_achievements}\n")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
players = [
|
players = {
|
||||||
Player("Alice", set(('first_kill', 'level_10', 'treasure_hunter', 'speed_demon'))),
|
"Alice": ['first_kill', 'level_10', 'treasure_hunter', 'speed_demon'],
|
||||||
Player("Bob",set(('first_kill', 'level_10', 'boss_slayer', 'collector'))),
|
"Bob": ['first_kill', 'level_10', 'boss_slayer', 'collector'],
|
||||||
Player("Charlie", set(('level_10', 'treasure_hunter', 'boss_slayer', 'speed_demon', 'perfectionist')))
|
"Charlie": ['level_10', 'treasure_hunter', 'boss_slayer', 'speed_demon', 'perfectionist']
|
||||||
]
|
}
|
||||||
print("=== Achievement Tracker System ===\n")
|
# players = {'alice': ['first_blood', 'pixel_p:unique_achievementserfect', 'speed_runner', 'first_blood', 'first_blood'], 'bob': ['level_master', 'boss_hunter', 'treasure_seeker', 'level_master', 'level_master'], 'charlie': ['treasure_seeker', 'boss_hunter', 'combo_king', 'first_blood', 'boss_hunter', 'first_blood', 'boss_hunter', 'first_blood'], 'diana': ['first_blood', 'combo_king', 'level_master', 'treasure_seeker', 'speed_runner', 'combo_king', 'combo_king', 'level_master'], 'eve': ['level_master', 'treasure_seeker', 'first_blood', 'treasure_seeker', 'first_blood', 'treasure_seeker'], 'frank': ['explorer', 'boss_hunter', 'first_blood', 'explorer', 'first_blood', 'boss_hunter']}
|
||||||
for n in players:
|
tracker_system(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}")
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user