【发布时间】:2020-01-29 01:09:20
【问题描述】:
我对编码还是比较陌生。我目前在从函数返回值时遇到问题。基本思想是玩家和敌人掷 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”。我究竟做错了什么?感谢您的帮助。
【问题讨论】: