Skip to main content
 首页 » 编程设计

python之基于关点的等级系统

2025年05月04日15dflying

我正在尝试基于点数制作关卡系统,但代码有点太长了。如果你能帮我把它变小,我真的很感激。描述它应该做的是获得积分并查看他们处于什么级别,如果他们升级,它将告诉他们升级了多少次以及他们现在处于什么级别。我希望它上升到 100,并且在上升时更难升级。这是我目前所拥有的:

 def pointLevel(name): 
    point = Point.dPoint[name] 
    points, lvl = int(point), int(lvl) 
    if points < 500: 
      lvl = 1 
    elif points < 1500: 
      lvl = 2 
    elif points < 2500: 
      lvl = 3 
    elif points < 5000: 
      lvl = 4 
    elif points < 10000: 
      lvl = 5 
    elif points < 15000: 
      lvl = 6 
    elif points < 20000: 
      lvl = 7 
    elif points < 30000: 
      lvl = 8 
    elif points < 50000: 
      lvl = 9 
    elif points < 100000: 
      lvl = 10 
    elif points < 250000: 
      lvl = 11 
    notes.store("levels", user.name, "You have leveled up. You are now level "+str(lvl)+"!", int(time.time())) 

请您参考如下方法:

只是为了缩短您的代码,您可以将级别保存为列表,然后通过将点与级别拆分进行比较来计算用户通过了多少级别:

levels = [100, 200, 300, 400, 500] 
lvl = len([x for x in levels if points > x]) 

我不担心这里的速度,但是使用生成器可以被认为是一种更好的做法(或者不是,在这种情况下是个人喜好问题):

lvl = sum(1 for x in levels if points > x)