@sergeyfilippov4

Как реализовать распределение наград?

Есть такие входные данные:
users_damage = {
    'first_player': 4000,
    "second_player": 100000,
    'third_player': 8000
}

где ключ - ник игрока, а значение - нанесенный им урон

Награды:
rewards = {
    "weapon": "annihilator",
    "rating": 2000,
    "money": 10 ** 9
}


Мне нужно сделать так, чтобы распределялись награды в зависимости от нанесенного урона игроком.
В наградах - не рейтинг на одного игрока, а максимальный рейтинг. То есть, рейтинг делится на количество игроков, а как сделать, чтобы именно награды распределялись - я не понял
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Как-то так:

total_damage = 0
for damage in users_damage.value():
  total_damage += damage

for user, damage in users_damage.items():
  user_rating = int(2000*damage/total_damage)
  user_reward = int(10**9*damage/total_damage)
  print ("User {user} received {user_rating} rating points and {user_reward} bucks")


Возможны погрешности округления до целых, из-за которых сумма по отдельным юзерам может слегка не сойтись с общей, но думаю, что это несущественно, если сумма наград в сотни раз больше числа игроков. Ну или можно не округлять.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы