基本上,我正在制作一个基于文本的蟒蛇游戏,并遇到了一个街区。
玩家可以进入一场战斗,和往常一样,你有可能会死(hp是0)。我想要做的是打破游戏的主循环,这是几个功能沿着道路,大约5-6 (从主战系统功能),分散在不同的文件。
结构如下:
core()
while True:
main()
game_over()我想要做的是,每当玩家的hp达到0(甚至更低)时,main()函数就会中断,这样玩家就可以被提示退出游戏或者再次运行主函数。我希望这种情况不同于在每个函数之后输入return和一个值。
game_over函数提示播放器再次输入"new“并启动main(),因为函数根本不会做任何事情,或者”退出“,该函数将调用exit ()并退出游戏。
TL:医生--我怎么才能从一个较小的函数中挣脱出来呢?试图避免一连串的回报?
发布于 2015-10-20 16:39:21
您可以引发异常。
例如
def main():
if condition:
raise StopIteration
else:
return value
while True:
main()对于更复杂的逻辑,您可以引发自定义异常并捕获它们:
class GameOver(Exception):
pass
class Quit(Exception):
pass
def main():
if game_over:
raise GameOver
if quit:
raise Quit
else:
return value
while True:
try:
main()
except GameOver:
game_over()
except Quit:
breakhttps://stackoverflow.com/questions/33241955
复制相似问题