用Python构造此状态机的最佳方法是什么?

问题描述 投票:0回答:1

我是python的新手,正在尝试着手进行编码。我正在尝试创建一个简单的机器人来玩Facebook游戏,并且在进行了一些研究之后,我相信使用状态机是正确的选择。这是我正在尝试做的概述,但是我确信这不是编写代码的正确方法。一旦程序变得更加复杂,此代码将变得很复杂。有人可以帮助我将其转换为更强大的状态机代码吗?另外,是否有一种方法可以在用户按下按键时在状态之间进行检查,以便我可以暂停机器?谢谢。

state = 1

def runStateMachine():
    global state
    if state == 1:
        doSomething()
        state = 2
    elif state == 2:
        if checkSomething():
            state = 3
        else:
            state = 1
    elif state == 3:
        finishSomething()
        state = 1

while True:
    runStateMachine()
    sleep(5)
    #check if a key has been pressed and pause here until the key is pressed again
python loops state-machine
1个回答
0
投票

我也是初学者,但是您的代码对我来说很好。

您可以做的改进代码的一件事是将state = X变成:

state = state % 3 + 1
© www.soinside.com 2019 - 2024. All rights reserved.