我正在开发一个简单的基于文本的琐事游戏作为我的第一个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()
...
答案 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中详细了解相关内容。