状态机在工程中使用非常的频繁,有如下常见的三种实现方法:
1. `switch-case` 实现,适合简单的状态机;
2. 二维状态表`state-event`实现,逻辑清晰,但是矩阵通常比较稀疏,而且维护麻烦;
3. 用状态转移表`stateTransfer Table`实现,数组大小等于状体转移边个数,易扩展;...
分类:
编程语言 时间:
2015-07-26 17:23:47
阅读次数:
178
一个事物,在不同的状态下会有不同的动作,还可以变化到另一个状态,在开发时有时会遇到这样的事物。有限状态机就是这样的一个事物,在实现时用到了switch case来解决的,但是当状态不多时,这样可以解决,如果状态很多,switch case就会变得难以维护。switch case还有有个缺点就是逻辑和实现没有分离,动作的代码直接写在了逻辑中,使得维护和扩展变得困难。State模式就是解决这个问题的。...
分类:
其他好文 时间:
2015-07-19 13:25:02
阅读次数:
128
1. page_attrs的状态转换关系 之前说过,bitmap的优化核心是:bitmap设置后批量写入;bitmap延时清除。写bit用bitmap_statrwrite() + bitmap_unplug()两个函数,实现了bitmap设置后的批量写入;清bit用bitmap_endwrite....
分类:
其他好文 时间:
2015-07-19 01:24:39
阅读次数:
226
1,在工程目录下添加Animation文件夹,并在下面创建名为'PlayerAnimatorController'的AnimatorContrlller,并将此添加到Player的controller中
2,打开Animator面板,找到Player模型的三种动画,并将其拖到Animator面板(第一个拖进来的为默认状态,右击Entry可)
3,...
分类:
编程语言 时间:
2015-07-16 19:46:28
阅读次数:
295
通过接收REACHABILITY_RECOVE_NOTIFICATION通知来获取网络状态,但是在弱网络下可能出现收不到通知的情况,iphone 4s有时候也出现收不到网络通知的情况,其它90%以上的情况都能收到网络通知。
登录时可以根据该通知来触发自动登录,防止没有收到网络通知就登录,导致登录失败,不能显示正常网络提示;也避免了起定时器等待一段时间在登录的不及时及耗电量问题(起线程很费电)。并且...
分类:
其他好文 时间:
2015-07-15 19:17:42
阅读次数:
106
对于一个随机过程,如果其未来所处的状态仅与其当前状态有关,而与过去的状态无关,则该随机过程被称为Markov过程,其具有马尔可夫性(亦“无后效性”)。
对于一个有限状态自动机,其状态集为S={s1, s2, ..., sn}。用X = x1, x2, ..., xT表示该状态机在t = 1, 2, ..., T时刻所处的状态。那么,我们称满足以下条件的状态链X为Markov链:
(式1...
分类:
其他好文 时间:
2015-07-05 18:36:10
阅读次数:
147
#include
using namespace std;class Contex;
//即使此处声明了,如果类中调用的有Contex函数,
//那么编译器也会找不到定义的地方,所有这里我将
//所有的类的实现都延迟在外面,这样对于每一个类而言,
//其他的类都是可见的,最大的好处就是类之间的相互调用
//不会产生什么未定义类型的错误警告。
class Base
{
publi...
分类:
其他好文 时间:
2015-07-05 11:08:09
阅读次数:
107
首先这是一篇FSM翻译,关于Finite State Machine 的架构赏析,如果项目对ai需求不是非常强,可以在此基础上扩展,keyle也是在学习中欢迎交流,后面两篇计划是在写一篇BehaviorTree(行为树),最后一篇实现基于Lua的AI的热更新QQ群交流:137728654Finite...
分类:
系统相关 时间:
2015-07-04 18:13:17
阅读次数:
175
Akka FSM 源代码分析萧猛啰嗦几句有限状态机本身不是啥新奇东西,在GoF的设计模式一书中就有状态模式, 也给出了实现的建议。各种语言对状态机模式都有非常多种实现的方式。我自己以前用C++和java实现过,也以前把 apache mina 源代码中的一个状态机实现抠出来单独使用。但Akka的状态...
分类:
其他好文 时间:
2015-07-01 15:32:15
阅读次数:
282