War Chest AI編寫(xiě)日記1(序章)
這個(gè)系列因?yàn)槲視?huì)出視頻,所以專欄部分我可能不會(huì)追求邏輯通暢,隨便亂寫(xiě)的筆記。不過(guò)我做的東西本身也沒(méi)什么人關(guān)注,鴿了也無(wú)所謂。
上周末,mumu2333給我推薦了這個(gè)游戲。
我看了各種評(píng)測(cè),這個(gè)游戲可能算是2020年最佳的幾款桌游了。
這個(gè)游戲我看了幾個(gè)攻略,開(kāi)了一盤,現(xiàn)在處于對(duì)規(guī)則六分懂的狀態(tài),但是我大概知道怎么玩了,因?yàn)槭菓?zhàn)棋,而且并不特別復(fù)雜(每一步可采用的行動(dòng)是很有限的),我覺(jué)得這個(gè)游戲很適合作為我寫(xiě)游戲AI的第一個(gè)項(xiàng)目。
我有一些編程的功底,當(dāng)年的畢業(yè)論文也是神經(jīng)網(wǎng)絡(luò)相關(guān)的,不知道能不能用上,我打算邊學(xué)邊寫(xiě)。

這是個(gè)2人戰(zhàn)棋游戲(可3-4人)。

這個(gè)游戲的規(guī)則大致是一個(gè)蜂窩狀六邊形棋盤,從左到右有7路,然后上面有10個(gè)格子是locations,每個(gè)人開(kāi)局有2個(gè)locations,然后誰(shuí)先到6個(gè)誰(shuí)贏。
每個(gè)人起手有四個(gè)兵種硬幣各兩張,另外皇家硬幣一個(gè),共九個(gè),手牌區(qū)抽三張牌,剩下六個(gè)放洗牌袋里。然后開(kāi)始回合,一個(gè)人打出手里三個(gè)幣才該另外一個(gè)人,行動(dòng)就是打出手里一個(gè)幣到棋盤上或棄牌區(qū):
到棋盤上的行動(dòng)包括兩個(gè),兵種從自家locations上出生或重生,和堆疊撐血;
到棄牌堆(也就是待洗牌區(qū))的行動(dòng)包括明牌行動(dòng)和扣著打出的暗牌行動(dòng),明牌行動(dòng)四個(gè):讓兵種移動(dòng)、攻擊、使用兵種技能、控制腳下的location;
暗牌行動(dòng)包括三個(gè):搶下一回合的先手、從供應(yīng)堆(帶招募區(qū))招募一個(gè)硬幣到棄牌區(qū)、空過(guò)。
皇家硬幣只能用于暗牌行動(dòng)。
然后手里的硬幣打完就該另外一個(gè)人,然后自己從洗牌袋里抽三張牌,洗牌袋的牌沒(méi)有了,就把所有待洗牌區(qū)的牌放進(jìn)洗牌袋洗牌再抽。所以招募的作用是調(diào)整手牌中兵種出現(xiàn)的頻率,四個(gè)兵種硬幣個(gè)數(shù)招募4次變成3333和原本2222的頻率是相同的,等于浪費(fèi)了4次行動(dòng)。
我雖然只玩了一局,但我大概能揣摩到這個(gè)游戲的策略,我理解是這樣的,我拿CS戰(zhàn)隊(duì)比賽舉例:兩個(gè)CS戰(zhàn)隊(duì)每個(gè)隊(duì)四個(gè)兵,兵死了就會(huì)回出生點(diǎn),地圖上有10個(gè)點(diǎn)需要兩個(gè)戰(zhàn)隊(duì)去插旗,出生和插旗本身需要時(shí)間,開(kāi)局布局——地圖上有些地方易守難攻或者戰(zhàn)略要地就需要搶點(diǎn),所以開(kāi)局就需要比對(duì)方快,中盤戰(zhàn)斗——然后兩個(gè)隊(duì)搶,一個(gè)人肯定搶不到,這個(gè)時(shí)候就需要打架,收官——這個(gè)游戲沒(méi)有什么收官計(jì)算,打架贏了之后占6個(gè)locations結(jié)束。
然后每個(gè)兵技能不一樣,類比CS就是,有的兵拿的是mp5,跑得快,擅長(zhǎng)搶點(diǎn),有點(diǎn)兵拿的是狙,擅長(zhǎng)防守反擊和攻堅(jiān)。

我打算明天首先收集資料,然后大致立一個(gè)計(jì)劃,算是開(kāi)題了,這個(gè)計(jì)劃可能日后面目全非。
我每天可能花2-3小時(shí)在這個(gè)事上,周末多一些。
我不確定要不要寫(xiě)一個(gè)界面來(lái)展示ai自對(duì)弈的過(guò)程。
AI逐步實(shí)現(xiàn)
首先,所有兵都是白板,但是場(chǎng)上最多四個(gè)兵,這樣就不需要供應(yīng)堆、洗牌袋、棄牌堆,而且用窮舉法應(yīng)該就能做。
然后,將兵分為白板A、白板B、白板C、白板D四類兵,因此需要加入洗牌袋,窮舉法應(yīng)該也能做。
然后,引入皇家硬幣。
然后,給所有兵設(shè)置同一兵種,總共16兵種,因此從1-16逐一實(shí)現(xiàn)。
然后,設(shè)置多個(gè)兵種,這里應(yīng)該超級(jí)復(fù)雜。
形勢(shì)判斷指標(biāo)直覺(jué)上應(yīng)該采用有效行進(jìn)步數(shù)。
因?yàn)槔锩鏁?huì)有各種權(quán)重參數(shù),可能這個(gè)權(quán)重參數(shù)需要通過(guò)不停自對(duì)弈進(jìn)行迭代計(jì)算得出。
我需要看一些象棋和其他游戲AI設(shè)計(jì)的算法書(shū)籍,感覺(jué)很有挑戰(zhàn)。