Я все еще относительно новичок в кодировании. В настоящее время у меня проблема с возвратом значения из функции. Основная идея c заключается в том, что игрок и враг бросают 4 кубика. Я установил массив, который сортирует бросок костей игрока и противника от наивысшего значения к наименьшему. Отсюда я хотел, чтобы кости высшей ценности игрока вычитались из кости высшей ценности врага для каждой пары бросков (т.е. первый бросок игрока - первый бросок врага или первый бросок врага - первый бросок игрока). Я хотел использовать эту формулу, чтобы определить урон, наносимый игроку или врагу. Код, который я придумал:
def dmg_calculator_by_dice_roll(player_highest_roll_one, enemy_highest_roll_one):
if player_highest_roll_one > enemy_highest_roll_one:
roll_one_dmg_to_enemy = (enemy_highest_roll_one - player_highest_roll_one) * -1
roll_one_dmg_to_player = 0
return roll_one_dmg_to_player
return roll_one_dmg_to_enemy
elif player_highest_roll_one < enemy_highest_roll_one:
roll_one_dmg_to_player = (player_highest_roll_one - enemy_highest_roll_one) * -1
roll_one_dmg_to_enemy = 0
return roll_one_dmg_to_player
return roll_one_dmg_to_enemy
else:
roll_one_dmg_to_player = 0
roll_one_dmg_to_enemy = 0
return roll_one_dmg_to_player
return roll_one_dmg_to_enemy
player_rolls_round_one = [8, 6, 2, 1]
enemy_rolls_round_one = [6, 2, 2, 1]
player_highest_roll_one = player_rolls_round_one[0]
enemy_highest_roll_one = enemy_rolls_round_one[0]
roll_one_dmg_to_player = dmg_calculator_by_dice_roll(player_highest_roll_one, enemy_highest_roll_one)
roll_one_dmg_to_enemy = dmg_calculator_by_dice_roll(player_highest_roll_one, enemy_highest_roll_one)
dmg_calculator_by_dice_roll(player_highest_roll_one, enemy_highest_roll_one)
print(roll_one_dmg_to_enemy)
print(roll_one_dmg_to_player)
Проблема, с которой я сталкиваюсь, заключается в том, что значения roll_one_dmg_to_player и roll_one_dmg_to_enemy постоянно совпадают по значению. Если бы я запустил этот пример, я мог бы ожидать, что результат для кода будет «2» и «0». Но вместо этого он возвращает «2» и «2». Что я делаю неправильно? Спасибо за любую помощь.