@sergeyfilippov4

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

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

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

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


Мне нужно сделать так, чтобы распределялись награды в зависимости от нанесенного урона игроком.
В наградах - не рейтинг на одного игрока, а максимальный рейтинг. То есть, рейтинг делится на количество игроков, а как сделать, чтобы именно награды распределялись - я не понял
  • Вопрос задан
  • 58 просмотров
Решения вопроса 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")


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

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

Войти через центр авторизации
Похожие вопросы
от 80 000 до 200 000 ₽
AIR Production Москва
от 170 000 до 200 000 ₽
от 2 500 до 4 000 $
26 нояб. 2020, в 21:08
5000 руб./за проект
26 нояб. 2020, в 20:55
5000 руб./за проект
26 нояб. 2020, в 20:36
5000 руб./за проект