因此,我正在根据我正在编写的程序的速度等级进行攻击超时,但在数学方面,我不是天才。因为我有一个公式,如so speed = lambda x: x/50基本速度等级默认为100,所以攻击将在speed(100)每两秒钟发生一次。现在我想要的是,在较高的速度等级下,攻击发生得更快,在较慢的速度等级下,攻击发生得更慢。也就是说,speed(98)会返回大于2的值,而speed(101)会返回小于2的值。这些数字只是例子,但主要问题是,有一个公式可以根据较高的基数返回一个较低的数,反之亦然?
例如:speed(101); returns x < y和speed(98); returns x > y y是一个常量,如2。
发布于 2015-01-31 03:13:46
不如:
def speed(score, attacks_per_second):
"""
computes actual attack speed for a player with `score`,
assuming a player with a score of 100 could attack at
`attacks_per_second`. Lower scores are better.
"""
return attacks_per_second * (100 / score)>>> speed (100, 2)
2.0
>>> speed (120, 2)
1.6666666666666667
>>> speed (80, 2)
2.5编辑:因为我第一次误读了,你想要更高的分数来提供更低的速度,把100/分倒转到分数/100。原件保存于此:
def speed_inverse(score, attacks_per_second):
"""
as above, but higher scores are better
"""
return attacks_per_second * (score / 100)>>> speed (120, 2)
2.4
>>> speed (80, 2)
1.6发布于 2015-01-31 03:28:15
那只是组织。:)
attack_delay = 200 / speed现在使用speed = 100,您将有两秒钟的攻击间隔。使用speed = 50,您将有4秒的攻击间隔。speed = 200每秒给你一次攻击。
https://stackoverflow.com/questions/28247744
复制相似问题