我正在制作一个简单的角色扮演游戏,其中角色等级基于经验(在下面的代码中由 x 表示)以指数方式增长。等级只能升到10级,但我很困惑如果他们的经验落在指数之间该怎么办—— 我在下面写了这段代码,将他们的等级四舍五入到最低经验等级,但是有没有办法让这段代码更简单或更高效?
if 2<x<4:
level=1
if 4<x<8:
level=2
if 8<x<16:
level=3
if 16<x<32:
level=4
if 32<x<64:
level=5
if 64<x<128:
level=6
if 128<x<256:
level=7
if 256<x<512:
level=8
if 512<x<1024:
level=9
if x>1024:
level=10
print (level)
请您参考如下方法:
from math import log
...
level = int(log(x, 2))
level = min(level, 10) # as suggested by Morb
print(level)
