国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

基礎(chǔ) | 簡(jiǎn)單的智能體----有限狀態(tài)機(jī)(二)

2020-03-02 11:19 作者:有木乘舟  | 我要投稿

本系列為筆者初學(xué)c/c++和游戲AI開(kāi)發(fā)的學(xué)習(xí)經(jīng)歷,練習(xí)為主,不涉及到具體的游戲開(kāi)發(fā)軟件學(xué)習(xí)(如unity,虛幻4等),適合剛?cè)腴T的小伙伴一起學(xué)習(xí)探討,歡迎在評(píng)論區(qū)留下意見(jiàn)。

  • ?開(kāi)發(fā)語(yǔ)言:c/c++ (11及以上)?

  • 開(kāi)發(fā)平臺(tái):macOS mojave / Linux?

  • 編譯器:vs Code / g++

從一個(gè)項(xiàng)目開(kāi)始

一、虛擬的世界

1.1 Bob的一天

假設(shè)存在一個(gè)虛擬小鎮(zhèn),鎮(zhèn)上生活著一個(gè)人Bob,鎮(zhèn)里有一個(gè)礦場(chǎng)(產(chǎn)出金礦),一家銀行(存儲(chǔ)金礦),一間酒吧(喝酒休息),一間屋子(Bob睡覺(jué)的家)。Bob每天要做的事情就是到礦場(chǎng)里挖金礦,口袋里裝滿金礦后將金子存儲(chǔ)到銀行里;從銀行出來(lái)如果錢夠了Bob便會(huì)回到家里睡覺(jué),若不夠則繼續(xù)到礦場(chǎng)里挖礦;期間只要他渴了就會(huì)停下手上的事到酒吧里喝酒,喝完酒之后則繼續(xù)到礦場(chǎng)里挖礦;Bob睡完覺(jué)后,如果渴了則去酒吧喝酒,否則進(jìn)礦場(chǎng)挖礦。

----《游戲人工智能編程案例精粹》

? 書(shū)中的例子,可憐的Bob一天的生活乏味可陳,但他每一次動(dòng)作都有著極為明顯的變化。Bob不管在哪一種狀態(tài)中,只要發(fā)生了某種動(dòng)作,一定會(huì)改變當(dāng)前狀態(tài),變成另一種狀態(tài)。

? 當(dāng)然,Bob可能還會(huì)存在其他更多的狀態(tài)和動(dòng)作,以及這個(gè)鎮(zhèn)子還會(huì)有其他人。但不論怎么增加復(fù)雜度,其根本構(gòu)成都不會(huì)變。

? 我們將以Bob的一天為基礎(chǔ),在計(jì)算機(jī)中構(gòu)建出一個(gè)虛擬的小世界,來(lái)模擬Bob的生活。

1.2 狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換表

? 首先,我們用狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換表來(lái)建?!癇ob的一天”,這樣可以更清晰的表示出其中的邏輯流動(dòng),有助于梳理邏輯結(jié)構(gòu),也可以很容易的發(fā)現(xiàn)邏輯流上的錯(cuò)誤,并改正過(guò)來(lái)。

圖1 Bob的一天

? 從圖1里我們可以知道,Bob存在四種狀態(tài),以及幾種改變狀態(tài)的動(dòng)作(條件):

圖2 Bob的狀態(tài)轉(zhuǎn)換表,左邊為當(dāng)前狀態(tài),上面為轉(zhuǎn)換狀態(tài),中間為條件(動(dòng)作)

??有了清晰的邏輯流,我們就可以借助c/c++編程語(yǔ)言,在計(jì)算機(jī)中模擬出“Bob的一天”。

1.2 一個(gè)完整的例子

圖3 Bob的一天

? 當(dāng)然,具體的實(shí)現(xiàn)中,我們有許多其他的工作需要做,比如說(shuō)采用什么樣的設(shè)計(jì)模式,一個(gè)狀態(tài)要持續(xù)多久,轉(zhuǎn)換狀態(tài)的條件要如何達(dá)成,等等。

? 這些我們將留到之后的章節(jié)詳細(xì)的講解。

參考:?

  • 《游戲人工智能編程案例精粹》

  • ?維基百科

相關(guān)代碼下載:https://github.com/linpeijie/GameToy/tree/master/GameAI/FSM

基礎(chǔ) | 簡(jiǎn)單的智能體----有限狀態(tài)機(jī)(二)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
海林市| 屯昌县| 古蔺县| 吐鲁番市| 焉耆| 宾阳县| 宁远县| 晋江市| 满洲里市| 津南区| 牟定县| 临颍县| 大连市| 麟游县| 万载县| 台北市| 平南县| 顺平县| 陆川县| 伊宁市| 鹤壁市| 北川| 新建县| 砚山县| 大宁县| 桃源县| 澳门| 黔江区| 云阳县| 甘洛县| 北票市| 普格县| 军事| 通榆县| 方城县| 郯城县| 沿河| 土默特右旗| 双辽市| 双峰县| 江孜县|