状态机编程

#define stateOK “stateOK”
#define stateA “stateA ”
#define stateB “stateB ”
#define stateC “stateC ”
#define stateStart “stateStart”
//先定义状态


#define caseChange “caseChange ”
#define caseStill “caseStill ”
//再定义动作


string NextState(string NowState,string case)
{
//写出状态-动作转换表
    switch(NowState):
    {
         case stateA:
              switch (case):
              {//用双层switch表现状态-动作转换表
                         case finished;
                         return stateB;break;
         .....}
    }
}


int main()
{
    string state=stateStart;
    string case=caseStill ;
    while(state!=stateOK)
    {    //循环直到状态退出,有case刷新的时候就更新状态
          state = NextState(state,string case);
          case = getCase(state);
          switch (state/case):
          {
          }
    }
   
}


发布了51 篇原创文章 · 获赞 62 · 访问量 12万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览