狀態模式:
完整**
1#define _crt_secure_no_warnings
2 #include 3 #include 4
5char *path = "
hello.c";
6char *pathnew = "
hellonew.c";
7//狀態模式:狀態模式允許乙個物件在其內部狀態改變的時候改變行為。8//
這個物件看上去象是改變了它的類一樣。狀態模式把所研究的物件的行為包裝在不同的狀態物件裡,9//
每乙個狀態物件都屬於乙個抽象狀態類的乙個子類。狀態模式的意圖是讓乙個物件在
10//
其內部狀態改變的時候,其行為也隨之改變。狀態模式需要對每乙個系統可能取得
11//
的狀態創立乙個狀態類的子類。當系統的狀態變化時,系統便改變所選的子類。
12//
例如13
//跟mm交往時,一定要注意她的狀態哦,在不同的狀態時她的行為會有不同,
14//
比如你約她今天晚上去看電影,對你沒興趣的mm就會說「有事情啦」,
15//
16//
已經喜歡上你的mm就會說「幾點鐘?看完電影再去泡吧怎麼樣?」,
17//
當然你看電影過程中表現良好的話,也可以把mm的狀態從不討厭不喜歡變成喜歡哦。
1819
2021
//標識狀態
22int state = 0;23
//備份前乙個讀取的
24char ch1 = 0;25
//當前讀取的
26char ch2 = 0;27
28//
狀態機29
void
changestate(ch)
3042
return;43
}44//如果遇到 *
45else
if (ch == '*'
)4652return;53
}54//遇到 " 進入狀態3 使 "" 中的資料輸出
55if (ch=='"'
)5659//
遇到 ' 進入狀態4
60if (ch == '\''
)6165//
如果是初始狀態,則輸出資料
66putchar(ch);
67}
68//
如果是狀態1,遇到"\n" 進入初始狀態
69else
if (state==1)70
7576}77
//如果是狀態2
78else
if (state == 2)79
88}89}
90//
如果是狀態3 遇到 " 結束狀態 進入最初狀態
91else
if (state == 3)92
97putchar(ch);98}
99//
如果是狀態4 遇到 ' 結束狀態,進入最初狀態
100else
if(state==4
)101
106putchar(ch);
107}
108}
109110
//主函式
111void
main()
112120
else
121131
}132
133fclose(pfr);
134fclose(pfw);
135 system("
pause");
136 }
狀態機 狀態機0
近半年都忙於做專案,沒有太多的時間去整理和總結在專案中用過的技術 個人還是覺得技術需要總結提煉和沉澱的,忙到沒時間去總結提公升其實不 是什麼好事,這次講下狀態機,在戰鬥型別的遊戲中角色有多種不同的狀態,而狀態的切換錯綜複雜,23種設計模式中有一種模式叫做狀態模式,不過 這種模式是把狀態切換條件放到各...
python 狀態機 Python 狀態機
class statemachine def init self self.handlers 狀態轉移函式字典 self.startstate none 初始狀態 self.endstate 最終狀態集合 引數name為狀態名,handler為狀態轉移函式,end state表明是否為最終狀態 de...
踱步狼注釋移除狀態機演算法2019 10
踱步狼注釋移除,狀態機演算法 入口條件 只要當前字元是,即必須進來處理。緊跟在轉義字元後面的char,一般我們是無條件寫回客戶端的,但如果此時是在處理,諸如塊注釋,單行注釋,多行注釋時,我們不寫。這邊為了後面處理回車換行方便,對於 後面如果是xd和xa,我們也順便處理,即寫回xd,xa到客戶端,只要...