有限状态机FSM


有限状态机,FSM(Finite State Machine)

定义

表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型

特点

  • 任何一个FSM都可以用状态转换图来描述
  • 状态:起始状态、中间状态、结束状态、消亡状态
  • 要素:现态、条件、动作、次态。current_state、event、action、next_state

状态转换图

img

状态转换表

image-20220211153659347

程序设计思路

  1. 找出系统中的不同状态,状态间的转移关系
  2. 写出状态转换图描述FSM
  3. 写出转移关系的事件和动作

从一个状态切换到另一个状态的过程,也称为一个映射

程序中一般有两种方法表示映射:

  • 通过算法表示,即“可执行代码(Executable Code)”方式
  • 通过一张映射表,即“被动数据(Passive Data)”方式

代码参考:

Executable Code

ifelse、switch

Passive Data

把ifelse独立为数据结构

Passive Data效率更高,更清晰。

FSM解析ini文件

代码参考:

对比,按行解析ini文件:https://github.com/TxtpGame/Test/tree/master/myIni