stately:C的单头通用有限状态机库 源码
庄严 用C编写的基于多态模板的有限状态机库,通过单个头文件传递。 我在我的游戏编程课上做了这个(我们必须实现状态机AI),并认为我可能会在其他项目中很好地利用它,所以就在这里。 多亏了C的初始化怪癖,无效输入和陷阱(拒绝)状态得以自动处理。 状态在内部以int形式实现,但是正如您在examples文件夹中看到的那样,可以(并且应该)使用enum来提高可读性。 state_machine struct的声明如下: struct state_machine { int curr_state; int (*map)( const void *); int state_table[NUM_STATE][ALPHABET_SIZE + 1 ]; }; 在哪里: curr_state是计算机的当前状态 map()是一个模板函数,允许调用者将任意输入映射到状态( in