Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- players = {}
- def manage_player(plrs: dict, pl: str, pos: str, skl: int):
- if pl not in plrs:
- plrs[pl] = {pos: skl}
- elif pl in plrs:
- if pos not in plrs[pl]:
- plrs[pl][pos] = skl
- else:
- if skl > plrs[pl][pos]:
- plrs[pl][pos] = skl
- def manage_duel(pl1: str, pl2: str, plrs: dict):
- found = False
- key = ''
- if pl1 in plrs and pl2 in plrs:
- for k in plrs[pl1].keys():
- for y in plrs[pl2].keys():
- if k == y:
- key = k
- found = True
- break
- if found and plrs[pl1][key] != plrs[pl2][key]:
- winner_val = max(plrs[pl1][key], plrs[pl2][key])
- winner_pl = ''.join([j for j in plrs if winner_val in plrs[j].values()])
- for plr, skll in plrs.items():
- if skll == winner_val:
- winner_pl = plr
- break
- for g in (pl1, pl2):
- if g != winner_pl:
- del plrs[g]
- while True:
- data = input()
- if data == 'Season end':
- break
- if '->' in data:
- data = data.split(' -> ')
- player = data[0]
- position = data[1]
- skill = int(data[2])
- manage_player(players, player, position, skill)
- elif 'vs' in data:
- data = data.split(' vs ')
- player_1 = data[0]
- player_2 = data[1]
- manage_duel(player_1, player_2, players)
- order_main = sorted(sorted(players, key=lambda _: _), key=lambda _: sum(players[_].values()), reverse=True)
- for x in order_main:
- total = sum(players[x].values())
- print(f'{x}: {total} skill')
- position_order = sorted(sorted(players[x], key=lambda _: _), key=lambda _: players[x][_], reverse=True)
- for f in position_order:
- print(f'- {f} <::> {players[x][f]}')
Advertisement
Add Comment
Please, Sign In to add comment