C Macho狀態機了解

2021-09-10 05:53:01 字數 2180 閱讀 8447

出處: macho狀態機

設計原理:

注意事項:

2.1 entry() exit()不能跳轉狀態;

2.2 跳轉狀態只能調到單方向,不能同時調到兩個方向

2.3 狀態進入:父狀態—>子狀態—>子狀態

2.4 狀態跳出:子狀態—>父狀態—>父狀態

2.5 兄弟狀態跳**a entry—> a exit—> b entry---->b exit

學習示例:

#ifndef simu_h

#define simu_h

#include

using

namespace std;

namespace simustatemachine

public

: basestate *

getstatepoint()

basestate *

getcurrstatepoint()

private

: basestate * mstate;

basestate * curstate;};

/*class subobjholdstate : public objholdsate ;

*/class

substate1

;class

substate2

;class

basestate

*/explicit

basestate

(int type)

basestate()

// exit

~basestate()

;// start

void

start()

;// event handle

virtual

void

event1()

virtual

void

event2()

virtual

void

event3()

public

:// setstate

// s: 0-topstate 1-subsate1 2-substate2

basestate*

setstate

(int s)

;private

: substate1 * msub1;

substate2 * msub2;};

class

substate1

:public basestate

~substate1()

void

init()

};class

substate2

:public basestate

~substate2()

void

init()

};objholdsate::

objholdsate

(basestate *bs)

:mstate

(bs)

,curstate

(bs)

objholdsate::

~objholdsate()

if(null

!= curstate)

}void objholdsate::

setstate

(int state)

basestate::

~basestate()

if(null

!= msub2)

}// initializing a subclass in the constructor of the parent class

// will cause memory allocation to crash

void basestate::

start()

basestate* basestate::

setstate

(int s)}}

#endif

// simu_h

#include

"simu.h"

// using namespace std;

using

namespace simustatemachine;

intmain()

狀態機 狀態機0

近半年都忙於做專案,沒有太多的時間去整理和總結在專案中用過的技術 個人還是覺得技術需要總結提煉和沉澱的,忙到沒時間去總結提公升其實不 是什麼好事,這次講下狀態機,在戰鬥型別的遊戲中角色有多種不同的狀態,而狀態的切換錯綜複雜,23種設計模式中有一種模式叫做狀態模式,不過 這種模式是把狀態切換條件放到各...

python 狀態機 Python 狀態機

class statemachine def init self self.handlers 狀態轉移函式字典 self.startstate none 初始狀態 self.endstate 最終狀態集合 引數name為狀態名,handler為狀態轉移函式,end state表明是否為最終狀態 de...

狀態機小記

工作上有個功能模組用到了類似狀態機的東東,於是上網科普了一番。狀態機是由一系列輸入驅動,然後系統由其中一種狀態轉換為另一種狀態並產生某種輸出,這樣子的乙個系統叫做狀態機。狀態機分為兩種,一種是輸出只和系統狀態有關,叫做摩爾狀態機,另一種是輸出和輸入以及系統狀態都相關,叫做公尺莉狀態機。有關輸入 狀態...