达到分数限制时,程序不会终止?

时间:2016-08-17 00:45:22

标签: python

我正在开发一个简单的基于文本的琐事游戏作为我的第一个python项目,一旦达到分数限制,我的程序就不会终止。

def game(quest_list):
    points = 0
    score_limit = 20

    x, y = info()
    time.sleep(2)

    if y >= 18 and y < 100:
        time.sleep(1)
        while points < score_limit:
            random.choice(quest_list)(points)
            time.sleep(2)
            print("Current score:", points, "points")
        print("You beat the game!")
        quit()
    ...

1 个答案:

答案 0 :(得分:2)

看起来points变量没有增加。这样的东西可能在你的内循环中起作用:

    while points < score_limit:
        points = random.choice(quest_list)(points)
        time.sleep(2)
        print("Current score:", points, "points")

我假设quest_list是函数列表,并且您将points值作为参数传递?要使此示例有效,您还需要返回被调用的quest_list返回的函数中的点。一种可能更简洁的构建方法是仅返回任务生成的点。然后你可以做类似的事情:

        quest = random.choice(quest_list)
        points += quest()

除非points是可变数据结构,否则它不会更改该值。您可以在this StackOverflow question中详细了解相关内容。