随机Python模块和创造机会

时间:2014-03-24 11:46:42

标签: python random

我已经制作了一个带有战斗系统的文字冒险游戏。它当然是基于回合的,玩家和敌人都会造成伤害点(浮动)。我使用random.uniform()函数为每一轮生成攻击点。 零代表缺少敌人或玩家。然而,因为我使用花车,机会很渺茫。我想创造一个条件,让我们说五分之一的机会,攻击点等于0.00。这种情况必须在每一轮都进行。

我该怎么办?我可以使用一个模块吗?

注意:我想我可以使用随机模块(random.randint(0,5)),但我想知道是否还有其他方法。谢谢!

4 个答案:

答案 0 :(得分:2)

我认为你应该使用random.uniform()为0.00攻击点保留20%的值。

hit = random.uniform(0, 10)
if hit <= 2:
    damage = 0.00
else:
    damage = (hit - 2) / 8

这只是一个愚蠢的例子,但可能有所帮助。或者更简单:

hit = random.uniform(0, 10)
if hit >= 8:
    damage = 0.00
else:
    damage = hit / 8

答案 1 :(得分:1)

我建议滚动两个随机数:一个用于击中机会,另一个用于实际造成的伤害。你也可以将它们与玩家属性结合起来。例如:

if random.uniform(0, 100) < player.chance_to_hit:
    damage = random.uniform(weapon.min_damage, weapon.max_damage)

答案 2 :(得分:0)

你可以将从0到1(浮动)的几率乘以最大命中伤害(int):

try:
    chance = 1.0 / random.randint(0, 5)
except ZeroDivisionError:
    chance = 0.0

damage = chance * MAXIMUM_DAMAGE

只是一个猜测。

答案 3 :(得分:0)

  

机会1/5 攻击点等于 0.00

if random.randint(1, 5)==1:
    attack_points=0.00

|

或者如果你想看到真实的大数字:

if random.randint(0, 100)<=20:
    attack_points=0.00