python 如何实现 " goto " 功能?

在用pygame写一个小游戏,想问问如何实现当游戏结束时返回游戏开始界面呢?

阅读 17k
2 个回答

https://github.com/snoack/python-goto

from goto import with_goto

@with_goto
def range(start, stop):
    i = start
    result = []

    label .begin
    if i == stop:
        goto .end

    result.append(i)
    i += 1
    goto .begin

    label .end
    return result

首先,初学者不适合使用任何goto语句,因为这会在不久之后把你的代码变成跳跳糖:)
其次,你可以把游戏页面显示逻辑当做是一种状态,比如把"游戏开始界面"当做是一种状态,然后通过状态机的形式,控制状态的转换。也就是说,在程序遇到"游戏结束"的状态后,立马将程序状态变换成"游戏开始"。听上去很麻烦,但是其实很简单,给你个伪代码:

status_into_game_begin
# run game until touch game over condition
if game_over_condition == true
    status_into_game_over
    status_into_game_begin
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题