我想为Fallout New Vegas的特殊统计数据创建一个随机化器,我已经构建了大部分代码,但是有些情况下变量的总和超过/低于上限40
有没有办法限制它们,或者如果总数低于或超过40,分配差额
strength = random.randint(1, 10)
perception = random.randint(1, 10)
endurance = random.randint(1, 10)
charisma = random.randint(1, 10)
intelligence = random.randint(1, 10)
agility = random.randint(1, 10)
luck = random.randint(1, 10)
sum = strength + perception + endurance + charisma + intelligence + agility + luck
diff = 40 - sum
if diff < 0:
diff = (diff * - 1)
print("=======================")
print("Strength:", strength)
print("Perception:", perception)
print("Endurance:", endurance)
print("Charisma:", charisma)
print("Intelligence:", intelligence)
print("Agility:", agility)
print("Luck:", luck)
print("Total:", sum)
print("Difference:", diff)
print("=======================")
我不建议独立地生成属性(Green Clope Guy提供了一个关于如何更好地生成属性的指导性答案)
也就是说,如果出于某种原因,您仍然希望这样做,那么您可以按如下方式将差异分布到属性中:
请记住,由于
random
返回float
值,因此更新的属性也将是float
。如果需要它们作为int
,例如,可以在for
循环中使用int()
不要生成七个独立的随机数,而是生成七个小于40的数字,并使用它们的差异生成统计数据
您可以用几种不同的方式来定制这种方法。例如,如果您希望滚动的总统计数据少于40个,则可以生成七个随机数,并使用最后一个随机数作为端点,而不是40个
如果您的目标是<=40,而不是直接瞄准40,一个选择要考虑的是确定超龄,并传播它跨越您的统计数字。用于应用超龄价差的数学/逻辑可以调整为不太苛刻,但感觉接近你所追求的
相关问题 更多 >
编程相关推荐