2024-06-07 17:35:03 发布
网友
我有一个文字冒险游戏与战斗系统已经到位。当然是回合制的,玩家和敌人都会造成伤害点(漂浮)。我使用random.uniform()函数为每一轮生成攻击点。 零代表错过一个敌人或玩家。不过,因为我使用浮动,所以机会很小。我想创造一个条件,假设有1/5的几率,攻击点等于0.00。这种情况必须在每一轮都进行。在
random.uniform()
我该怎么做呢?有我可以用的模块吗?在
注意:我想我可以使用随机模块(random.randint(0,5)),但我想知道是否有其他方法。谢谢!在
random.randint(0,5)
你可以将从0到1的几率乘以最大命中伤害(int):
try: chance = 1.0 / random.randint(0, 5) except ZeroDivisionError: chance = 0.0 damage = chance * MAXIMUM_DAMAGE
只是一个猜测。在
我建议掷两个随机数:一个是命中的机会,另一个是实际造成的伤害。你也可以把它们和玩家属性结合起来。示例:
if random.uniform(0, 100) < player.chance_to_hit: damage = random.uniform(weapon.min_damage, weapon.max_damage)
我认为您应该使用random.uniform()为0.00攻击点保留20%的值。在
hit = random.uniform(0, 10) if hit <= 2: damage = 0.00 else: damage = (hit - 2) / 8
这只是一个愚蠢的例子,但可能会有所帮助。或者更简单:
你可以将从0到1的几率乘以最大命中伤害(int):
只是一个猜测。在
我建议掷两个随机数:一个是命中的机会,另一个是实际造成的伤害。你也可以把它们和玩家属性结合起来。示例:
我认为您应该使用
random.uniform()
为0.00攻击点保留20%的值。在这只是一个愚蠢的例子,但可能会有所帮助。或者更简单:
^{pr2}$相关问题 更多 >
编程相关推荐