本帖最后由 ppspssss2 于 2024-8-15 13:22 编辑
以下部分使用了百度AI https://chat.baidu.com/, #b为我有修改的句
# 定义变量 magic_attack = 125 magic_defense = 95 dodge_chance = 35 #b躲避率 <原来是0.35,但随机数貌似没法小数,乘大100变整数 dodge_damage_reduction = 0.20 # 转换为小数 # 计算未躲避时的魔法伤害 # 假设这里简单的减法来计算防御效果,实际情况可能更复杂 damage_before_dodge = magic_attack - magic_defense # 生成随机数决定是否躲避 if rand(100)+1 <= dodge_chance #b 小于等于35则运行躲避 (抽取到1-35) 躲避 ,(抽取到36-100)未躲避 # 如果躲避,计算减少后的伤害 damage_after_dodge = damage_before_dodge * (1 - dodge_damage_reduction) p "躲避成功,受到的伤害为: #{damage_after_dodge}" #b 《低版本ruby没此方法,我已删掉.round(2) else # 如果没有躲避,直接受到未躲避时的伤害 p "未躲避,受到的伤害为: #{damage_before_dodge}" end
# 定义变量
magic_attack = 125
magic_defense = 95
dodge_chance = 35 #b躲避率 <原来是0.35,但随机数貌似没法小数,乘大100变整数
dodge_damage_reduction = 0.20 # 转换为小数
# 计算未躲避时的魔法伤害
# 假设这里简单的减法来计算防御效果,实际情况可能更复杂
damage_before_dodge = magic_attack - magic_defense
# 生成随机数决定是否躲避
if rand(100)+1 <= dodge_chance #b 小于等于35则运行躲避 (抽取到1-35) 躲避 ,(抽取到36-100)未躲避
# 如果躲避,计算减少后的伤害
damage_after_dodge = damage_before_dodge * (1 - dodge_damage_reduction)
p "躲避成功,受到的伤害为: #{damage_after_dodge}" #b 《低版本ruby没此方法,我已删掉.round(2)
else
# 如果没有躲避,直接受到未躲避时的伤害
p "未躲避,受到的伤害为: #{damage_before_dodge}"
end
请注意,这个脚本做了几个假设:
魔法防御直接从魔法攻击力中减去来计算未躲避时的伤害。实际情况中,防御的计算可能更复杂,可能涉及防御力的百分比减少或其他因素。
躲避几率和躲避后伤害减少百分比都被转换为小数,因为Ruby的rand函数生成的是一个小于1的浮点数,这样便于直接比较。
使用了round(2)来格式化输出的小数点后的位数,使其看起来更整洁。《低版本ruby没此方法,我已删掉.round(2)
以上是一个简单的Ruby脚本,用于模拟你所描述的魔法、防御和躲避机制。 |