




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
太陽神三國殺AI系統(tǒng)設(shè)計(jì)分析第一頁,共127頁。版本信息神殺版本:太陽神三國殺V2–終結(jié)版(版本號(hào):)神殺AI版本:QSanguoshaAI20141006(V1.32Alpha)Lua版本:Lua5.2第二頁,共127頁。什么是AI?人工智能(ArtificialIntelligence),簡(jiǎn)稱AI。它是計(jì)算機(jī)科學(xué)的一個(gè)分支學(xué)科。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器。就其本質(zhì)而言,它是對(duì)人的意識(shí)、思維的信息過程的模擬。第三頁,共127頁。那么,什么又是太陽神三國殺的AI?游戲中出現(xiàn)的“電腦玩家”?No!它是幫助玩家(含“電腦玩家”)進(jìn)行游戲的后臺(tái)邏輯。主要包括“選將AI”、“托管AI”和“高級(jí)AI”三類。有了它,“電腦玩家”才能夠表現(xiàn)得像個(gè)人類……核心任務(wù):模擬人類玩家的思維過程,并最終做出決策!第四頁,共127頁。目錄選將AI情況1:KOF模式選將情況2:3v3對(duì)戰(zhàn)模式選將情況3:身份局選將情況4:雙將模式選擇副將托管AI高級(jí)AI場(chǎng)景1:出牌階段主動(dòng)使用牌場(chǎng)景2:響應(yīng)請(qǐng)求場(chǎng)景3:棄牌階段棄牌場(chǎng)景4:身份判斷場(chǎng)景5:分析局勢(shì)場(chǎng)景6:聊天及其它第五頁,共127頁。選將AI哪里有需要,AI就到哪里去!于是游戲的第一個(gè)問題出現(xiàn)了——選擇武將。面對(duì)若干備選武將,要選擇使用哪位武將參與游戲呢?思路:給武將評(píng)分,誰分高誰上!第六頁,共127頁。情況1:KOF模式(02_1v1)選將加載《武將1v1評(píng)分表》(游戲目錄/etc/1v1-priority.txt)讀取各備選武將的評(píng)分,并排序選取評(píng)分最高的武將第七頁,共127頁。選將舉例選將框中有下列武將:新標(biāo)準(zhǔn)版·黃月英新標(biāo)準(zhǔn)版·周瑜新標(biāo)準(zhǔn)版·司馬懿新標(biāo)準(zhǔn)版·馬超新標(biāo)準(zhǔn)版·大喬標(biāo)準(zhǔn)版·甄姬以及四個(gè)暗將AI會(huì)選擇哪個(gè)武將呢?第八頁,共127頁。選將舉例(解)查表可知——新標(biāo)準(zhǔn)版·黃月英:65分新標(biāo)準(zhǔn)版·周瑜:82分新標(biāo)準(zhǔn)版·司馬懿:69分新標(biāo)準(zhǔn)版·馬超:70分新標(biāo)準(zhǔn)版·大喬:14分標(biāo)準(zhǔn)版·甄姬:93分而暗將的評(píng)分被固定為50分所以AI向電腦玩家推薦的選將是——甄姬,其次周瑜。第九頁,共127頁。情況2:3v3對(duì)戰(zhàn)模式(06_3v3)選將加載《武將3v3評(píng)分表》(游戲目錄/etc/3v3-priority.txt)讀取各備選武將的評(píng)分,并排序選取評(píng)分最高的武將其實(shí)和KOF模式的思路是相似的……第十頁,共127頁。情況3:身份局選將根據(jù)角色身份采用不同的策略進(jìn)行選將。主公隨機(jī)選將。忠臣、內(nèi)奸、反賊……依然是先分別評(píng)分,然后最高分入選。與前兩種情況不同的是,身份局選將需要考慮主公因素。所以評(píng)分包括兩個(gè)部分:基礎(chǔ)分,匹配分。評(píng)分公式:最終評(píng)分=基礎(chǔ)分×匹配分第十一頁,共127頁?;A(chǔ)分初始值:5分。忠臣:
勢(shì)力為“神”,或者與主公勢(shì)力相同,基礎(chǔ)分×1.04反賊:
勢(shì)力為“群”,且主公有技能“血裔”(火·袁紹),基礎(chǔ)分×0.8
勢(shì)力為“吳”,且主公有技能“歸命”(SP·孫皓),基礎(chǔ)分×0.5內(nèi)奸或反賊:
勢(shì)力為“蜀”,且主公有技能“誓仇”(☆SP·劉備),基礎(chǔ)分×0.1所以經(jīng)常見到主公選曹操時(shí),全場(chǎng)一片魏藍(lán)色;而選劉備時(shí),一堆蜀將。第十二頁,共127頁。匹配分加載《忠臣評(píng)分表》(游戲目錄/etc/loyalist.txt)、《反賊評(píng)分表》(游戲目錄/etc/rebel.txt)和《內(nèi)奸評(píng)分表》(游戲目錄/etc/renegade.txt)根據(jù)角色身份,從對(duì)應(yīng)的評(píng)分表中讀取備選武將的:①通用適應(yīng)度(不關(guān)心主公是誰時(shí)的適應(yīng)度,默認(rèn)為0)②主公適應(yīng)度(在特定武將做主公時(shí)的適應(yīng)度,默認(rèn)為0)于是,匹配分=1.1^通用適應(yīng)度×1.1^主公適應(yīng)度評(píng)分公式:最終評(píng)分=基礎(chǔ)分×1.1^通用適應(yīng)度×1.1^主公適應(yīng)度第十三頁,共127頁。選將舉例火·典韋風(fēng)·夏侯淵標(biāo)準(zhǔn)版·孫權(quán)風(fēng)·張角神·趙云主公:林·董卓角色身份:忠臣備選武將:如圖所示第十四頁,共127頁。忠臣評(píng)分表(節(jié)選)通用適應(yīng)度SP·曹昂:0.3SP·袁術(shù):0.3新標(biāo)準(zhǔn)版·郭嘉:0.2標(biāo)準(zhǔn)版·郭嘉:0.2SP·華雄:-1林·董卓主公適應(yīng)度神·呂布:1.1火·袁紹:1新風(fēng)·張角:1風(fēng)·張角:1新標(biāo)準(zhǔn)版·呂布:1標(biāo)準(zhǔn)版·呂布:1風(fēng)·小喬:0.8火·顏良文丑:0.7新風(fēng)·周泰:-2風(fēng)·周泰:-3第十五頁,共127頁。選將舉例(火·典韋)基礎(chǔ)分:5分查表知,典韋沒有忠臣身份的通用適用度和董卓主公時(shí)的適應(yīng)度所以典韋的評(píng)分為:5×1.1^0×1.1^0=5分第十六頁,共127頁。選將舉例(風(fēng)·夏侯淵)基礎(chǔ)分:5分查表知,夏侯淵沒有忠臣身份的通用適用度和董卓主公時(shí)的適應(yīng)度所以夏侯淵的評(píng)分為:5×1.1^0×1.1^0=5分第十七頁,共127頁。選將舉例(標(biāo)準(zhǔn)版·孫權(quán))基礎(chǔ)分:5分查表知,孫權(quán)沒有忠臣身份的通用適用度和董卓主公時(shí)的適應(yīng)度所以孫權(quán)的評(píng)分為:5×1.1^0×1.1^0=5分第十八頁,共127頁。選將舉例(風(fēng)·張角)基礎(chǔ)分:5×1.04=5.2分查表知,張角沒有忠臣身份的通用適用度,但董卓主公時(shí)的適應(yīng)度為1所以張角的評(píng)分為:5.2×1.1^0×1.1^1=5.72分第十九頁,共127頁。選將舉例(神·趙云)基礎(chǔ)分:5×1.04=5.2分查表知,趙云沒有忠臣身份的通用適用度和董卓主公時(shí)的適應(yīng)度所以趙云的評(píng)分為:5.2×1.1^0×1.1^0=5.2分第二十頁,共127頁。選將舉例(解)火·典韋:5分風(fēng)·夏侯淵:5分標(biāo)準(zhǔn)版·孫權(quán):5分風(fēng)·張角:5.72分神·趙云:5.2分經(jīng)過計(jì)算,各武將的評(píng)分為:所以AI最終會(huì)選擇張角做董卓的忠臣。第二十一頁,共127頁。情況4:雙將模式選擇副將加載《雙將評(píng)分表》(游戲目錄/etc/double-generals.txt)對(duì)于每個(gè)備選武將,讀取已選主將與其進(jìn)行配對(duì)時(shí)的評(píng)分(默認(rèn)為0分)若沒有評(píng)分,再讀取其與已選主將進(jìn)行配對(duì)時(shí)的評(píng)分(默認(rèn)為50分)將所有備選武將的最終評(píng)分進(jìn)行排序選擇評(píng)分最高的備選武將做為副將第二十二頁,共127頁。選將舉例主將:林·魯肅備選副將:
標(biāo)準(zhǔn)版·張遼
標(biāo)準(zhǔn)版·甘寧
標(biāo)準(zhǔn)版·孫尚香
新標(biāo)準(zhǔn)版·華佗
標(biāo)準(zhǔn)版·劉備應(yīng)該選誰作為魯肅的副將呢?第二十三頁,共127頁。雙將評(píng)分表(節(jié)選)新標(biāo)準(zhǔn)版·劉備+林·魯肅:75分標(biāo)準(zhǔn)版·孫尚香+林·魯肅:54分林·魯肅+新一將成名·凌統(tǒng):52分林·魯肅+SP·袁術(shù):54分林·魯肅+標(biāo)準(zhǔn)版·張遼:20分林·魯肅+標(biāo)準(zhǔn)版·劉備:75分林·魯肅+一將成名·凌統(tǒng):53分第二十四頁,共127頁。選將舉例(標(biāo)準(zhǔn)版·張遼)查表可知:林·魯肅+標(biāo)準(zhǔn)版·張遼:評(píng)分為20分。這個(gè)20分就是張遼的最終評(píng)分了。第二十五頁,共127頁。選將舉例(標(biāo)準(zhǔn)版·甘寧)查表可知:林·魯肅+標(biāo)準(zhǔn)版·甘寧:沒有評(píng)分(取默認(rèn)值0分)再查:標(biāo)準(zhǔn)版·甘寧+林·魯肅:還是沒有評(píng)分(取默認(rèn)值50分)所以甘寧的最終評(píng)分是50分。第二十六頁,共127頁。選將舉例(標(biāo)準(zhǔn)版·孫尚香)查表可知:林·魯肅+標(biāo)準(zhǔn)版·孫尚香:沒有評(píng)分(取默認(rèn)值0分)。再查:標(biāo)準(zhǔn)版·孫尚香+林·魯肅:評(píng)分為54分。于是孫尚香的最終評(píng)分被修改為54分。第二十七頁,共127頁。選將舉例(新標(biāo)準(zhǔn)版·華佗)查表可知:林·魯肅+新標(biāo)準(zhǔn)版·華佗:沒有評(píng)分(取默認(rèn)值0分)。再查:新標(biāo)準(zhǔn)版·華佗+林·魯肅:還是沒有評(píng)分(取默認(rèn)值50分)。于是華佗的最終評(píng)分為50分。第二十八頁,共127頁。選將舉例(標(biāo)準(zhǔn)版·劉備)查表可知:林·魯肅+標(biāo)準(zhǔn)版·劉備:評(píng)分為75分。這樣劉備的最終評(píng)分即為75分。第二十九頁,共127頁。選將舉例(解)所有備選武將的評(píng)分為:
標(biāo)準(zhǔn)版·張遼:20分
標(biāo)準(zhǔn)版·甘寧:50分
標(biāo)準(zhǔn)版·孫尚香:54分
新標(biāo)準(zhǔn)版·華佗:50分
標(biāo)準(zhǔn)版·劉備:75分獲得最高分的是劉備,評(píng)分為75分所以AI最后將選擇標(biāo)準(zhǔn)版·劉備作為林·魯肅的副將第三十頁,共127頁。托管AI如果你點(diǎn)擊了“托管”,那么接下來幫你游戲的,就是托管AI托管AI為游戲中那些需要作決定的場(chǎng)合制定了最簡(jiǎn)單的策略以使游戲能夠繼續(xù)正常進(jìn)行比如開五谷豐登時(shí)讓玩家從中隨機(jī)選牌等然而這并不是重點(diǎn)講托管AI主要是為了引出后文的高級(jí)AI沒錯(cuò),托管AI其實(shí)只是一個(gè)代碼中的概念其工作現(xiàn)在已經(jīng)完全被高級(jí)AI替代在實(shí)現(xiàn)上,高級(jí)AI繼承自托管AI,是托管AI的子類第三十一頁,共127頁。高級(jí)AI于是重點(diǎn)來了……對(duì)于電腦玩家,要想跟上人的節(jié)奏,它們就必須依靠高級(jí)AI。怎樣出牌?怎樣響應(yīng)?怎樣留牌?怎樣判斷其他角色身份?怎樣分析局勢(shì)?怎樣賣萌……第三十二頁,共127頁。場(chǎng)景1:出牌階段主動(dòng)使用牌確定所有可能將使用的卡牌(包括:真·卡牌、視為·卡牌)嘗試使用卡牌,以此選出所有可以使用的卡牌分別計(jì)算各選出卡牌的使用優(yōu)先級(jí)排序,確定優(yōu)先級(jí)最高的卡牌,此即將要使用的卡牌確定卡牌使用方式(包括:用哪些牌?對(duì)誰使用?)其實(shí)和人類玩家思考的過程是類似的……下面給出一個(gè)例子具體解釋一下。第三十三頁,共127頁。出牌舉例龐統(tǒng)忠臣,第一輪出牌階段準(zhǔn)備出牌,目前場(chǎng)上局勢(shì)如下:1號(hào)位:火·袁紹(主公,2體力0牌)2號(hào)位:林·董卓(6體力4牌)3號(hào)位:林·祝融(反賊,2體力1牌,八卦陣,大宛)4號(hào)位:風(fēng)·夏侯淵(反賊,2體力1牌,貫石斧)5號(hào)位:火·龐統(tǒng)(1體力5牌,未涅槃)【主視角角色,忠臣】6號(hào)位:風(fēng)·黃忠(3體力2牌)7號(hào)位:新標(biāo)準(zhǔn)版·郭嘉(1體力9牌)8號(hào)位:標(biāo)準(zhǔn)版·曹操(3體力4牌)手牌為:【絕影】(?5)、【朱雀羽扇】(?A)、【雷殺】(?8)、 【決斗】(?A)、【閃】(?Q)現(xiàn)在龐統(tǒng)該如何出牌呢?第三十四頁,共127頁。出牌舉例局勢(shì)如圖,現(xiàn)在龐統(tǒng)該如何行動(dòng)?第三十五頁,共127頁。確定所有可能將使用的卡牌①【絕影】(?5)②【朱雀羽扇】(?A)③【雷殺】(?8)④【決斗】(?A)⑤【閃】(?3)⑥〖鐵索連環(huán)〗(?A)——來自技能“連環(huán)”,由④構(gòu)成在AI看來龐統(tǒng)共有6張卡牌!第三十六頁,共127頁。嘗試使用,選出所有可用卡牌【絕影】(?5)【朱雀羽扇】(?A)【雷殺】(?8)【決斗】(?A)〖鐵索連環(huán)〗(?A)——來自技能“連環(huán)”不能主動(dòng)使用閃!所以現(xiàn)在龐統(tǒng)共有5張卡牌可用!第三十七頁,共127頁。計(jì)算卡牌的使用優(yōu)先級(jí)卡牌的使用優(yōu)先級(jí)包括:預(yù)設(shè)的“使用優(yōu)先級(jí)”,以及游戲中實(shí)時(shí)確定的“動(dòng)態(tài)使用優(yōu)先級(jí)”兩類?!笆褂脙?yōu)先級(jí)”只與卡牌種類有關(guān)(記錄在sgs.ai_use_priority表中)?!皠?dòng)態(tài)使用優(yōu)先級(jí)”與花色、點(diǎn)數(shù)、角色技能等信息有關(guān)。一般來說,“使用優(yōu)先級(jí)”是基準(zhǔn),“動(dòng)態(tài)使用優(yōu)先級(jí)”根據(jù)實(shí)際情況,在其基礎(chǔ)上上下浮動(dòng)。最終優(yōu)先級(jí)以“動(dòng)態(tài)使用優(yōu)先級(jí)”為準(zhǔn)。第三十八頁,共127頁。獲取預(yù)設(shè)的“使用優(yōu)先級(jí)”絕影(防御馬):2.75朱雀羽扇(武器):2.655雷殺:2.5決斗:2.9鐵索連環(huán):9.1(數(shù)據(jù)來自:游戲目錄/lua/ai/standard_cards-ai.lua和
游戲目錄/lua/ai/maneuvering-ai.lua)第三十九頁,共127頁。計(jì)算“動(dòng)態(tài)使用優(yōu)先級(jí)”【絕影】(?5):2.75―0.0032=2.7468【朱雀羽扇】(?A):2.655+0.7992=3.4542【雷殺】(?8):2.5+0.4995=2.9995【決斗】(?A):2.9+0.0002=2.9002〖鐵索連環(huán)〗(?A):9.1+0.0002=9.1002(參考:游戲目錄/lua/ai/smart-ai.lua中的SmartAI:getDynamicUsePriority函數(shù))第四十頁,共127頁。按優(yōu)先級(jí)排序〖鐵索連環(huán)〗(?A):9.1002【朱雀羽扇】(?A):3.4542【雷殺】(?8):2.9995【決斗】(?A):2.9002【絕影】(?5):2.7468最終選擇使用〖鐵索連環(huán)〗(?A)第四十一頁,共127頁。確定使用方式首先排除“無言”、“忍戒”、“敵人數(shù)過少”、“無謀”等特殊情形然后排除“啖酪”(SP·楊修)或“皇恩”(貼紙·劉協(xié))的干擾接著對(duì)所有角色進(jìn)行分組:組F1:被橫置的、可生效的、害怕受傷的、帶閃電的友方角色(空)組F2:被橫置的、可生效的、害怕受傷的、不帶閃電的友方角色(空)組OF:不屬于F1和F2的其他友方角色(袁紹、龐統(tǒng))組E:未被橫置的、可生效的、不希望扣減體力的、明確的敵方角色
(夏侯淵、祝融)并判斷是否需要連環(huán)自己(不需要)第四十二頁,共127頁。確定使用方式(續(xù))分組后,優(yōu)先考慮為組F1中的友方角色解鎖(不需要)然后考慮組E中的敵方角色,發(fā)現(xiàn)其數(shù)目不少于2個(gè)因此依次將前2個(gè)敵方角色添加為使用目標(biāo)即決定使用目標(biāo)為:夏侯淵、祝融最終結(jié)果:龐統(tǒng)發(fā)動(dòng)了技能“連環(huán)”將【決斗】(?A)當(dāng)作一張〖鐵索連環(huán)〗(?A)對(duì)夏侯淵和祝融使用。第四十三頁,共127頁。神殺技能分類觸發(fā)技:
在特定時(shí)機(jī)發(fā)動(dòng)的技能。
描述通常會(huì)具有類似“XX時(shí)機(jī),你可以做XX”的結(jié)構(gòu)。視為技:
將一些牌視為另一些牌的技能。
描述通常會(huì)具有類似“你可以將XX牌當(dāng)做XX牌使用”的結(jié)構(gòu)。特殊技
包括:禁止技、距離修正技、手牌上限技、目標(biāo)增強(qiáng)技、攻擊范圍技、技能失效技等。游戲規(guī)則本質(zhì)上也屬于觸發(fā)技哦!第四十四頁,共127頁。關(guān)鍵概念:技能卡為了便于AI思考,引入“技能卡”的概念?!凹寄芸ā笔且环N虛構(gòu)的卡牌,用來表現(xiàn)特定技能的效果。制衡:
階段技,你可以棄置至少一張牌。若如此做,你摸等量的牌。制衡:(同義描述)
階段技,你可以將X張牌當(dāng)做“制衡技能卡”使用(X至少為1)。制衡技能卡:
你摸X張牌。第四十五頁,共127頁。關(guān)鍵概念:技能卡意義:出牌階段的“主動(dòng)發(fā)動(dòng)技能”和“使用卡牌”自此在形式上得到了統(tǒng)一,簡(jiǎn)化了AI的思考過程。在出牌階段空閑時(shí)間點(diǎn)主動(dòng)發(fā)動(dòng)的技能都是視為技!只不過有些是視為了卡牌,有些是視為了技能卡而已。“視為技+技能卡”是實(shí)現(xiàn)許多技能效果的經(jīng)典搭配。衍生概念:
子卡——構(gòu)成技能卡的那些真正的卡牌,稱作該技能卡的子卡。第四十六頁,共127頁。出牌舉例(二)殘局階段,目前場(chǎng)上形勢(shì)如下:主公:標(biāo)準(zhǔn)版·曹操(3體力3牌,1號(hào)位)忠臣:標(biāo)準(zhǔn)版·貂蟬(1體力4牌,古錠刀、驊騮,2號(hào)位)【當(dāng)前回合角色】
新標(biāo)準(zhǔn)版·郭嘉(1體力2牌,3號(hào)位)
新標(biāo)準(zhǔn)版·夏侯惇(1體力0牌,5號(hào)位)反賊:新標(biāo)準(zhǔn)版·劉備(1體力1牌,橫置,4號(hào)位)
標(biāo)準(zhǔn)版·司馬懿(1體力2牌,青釭劍,橫置,6號(hào)位)
標(biāo)準(zhǔn)版·華佗(1體力0牌,白銀獅子,橫置,7號(hào)位)內(nèi)奸不明已知貂蟬的手牌為:【閃】(?4)、【順手牽羊】(?4)、 【順手牽羊】(?3)、【兵糧寸斷】(?10)現(xiàn)在是貂蟬的出牌階段,貂蟬應(yīng)當(dāng)怎樣出牌呢?第四十七頁,共127頁。出牌舉例現(xiàn)在貂蟬該如何行動(dòng)?第四十八頁,共127頁。思路是一樣的仍然要先確定有哪些可使用的卡牌然后對(duì)其按使用優(yōu)先級(jí)進(jìn)行排序最后選出最高優(yōu)先級(jí)的卡牌,確定其具體的使用方式只是在確定可使用卡牌的時(shí)候這次還要把技能卡考慮進(jìn)去:貂蟬擁有技能“離間”也就意味著還有一張卡牌——“離間技能卡”第四十九頁,共127頁。確定所有將可能使用的卡牌①【閃】(?4)②【順手牽羊】(?4)③【順手牽羊】(?3)④【兵糧寸斷】(?10)⑤“離間技能卡”(無花色,點(diǎn)數(shù)為0)——來自技能“離間”第五十頁,共127頁。嘗試使用,確定所有可用卡牌“離間技能卡”(無花色,點(diǎn)數(shù)0)第五十一頁,共127頁。例行公事……獲取預(yù)設(shè)的使用優(yōu)先級(jí)“離間技能卡”:4計(jì)算“動(dòng)態(tài)使用優(yōu)先級(jí)”“離間技能卡”(無花色,點(diǎn)數(shù)0):4(不變)按優(yōu)先級(jí)進(jìn)行排序排序結(jié)果:“離間技能卡”(無花色,點(diǎn)數(shù)0)最后決定使用的卡牌就是:“離間技能卡”(無花色,點(diǎn)數(shù)0)第五十二頁,共127頁。確定技能卡構(gòu)成采用手牌數(shù)大于體力時(shí)的策略首先將所有手牌按卡牌的保留價(jià)值從小到大進(jìn)行排序然后找出第一個(gè)不為【桃】的:基本牌或裝備牌或【五谷豐登】結(jié)果為:【閃】(?4)——此即為“離間技能卡”的子卡所以貂蟬將用這張【閃】發(fā)動(dòng)技能“離間”具體過程可參考:游戲目錄/lua/ai/nostalgia-ai.lua中的noslijian_skill.getTurnUseCard函數(shù)該函數(shù)最終調(diào)用了:游戲目錄/lua/ai/standard-ai.lua中的SmartAI:getLijianCard函數(shù)第五十三頁,共127頁。確定技能卡的使用目標(biāo)首先排除特殊情況,如:
離間主公殺忠臣、收友方反賊、幫孫策主公覺醒、利用神關(guān)羽等然后將所有敵方男性角色按防御力從小到大排序排序結(jié)果:華佗、劉備、司馬懿發(fā)現(xiàn)第一目標(biāo)華佗的體力為1并且沒有【殺】考慮離間主公收反賊華佗檢查主公可以使用【決斗】并且【決斗】對(duì)華佗有效因此決定使用目標(biāo)為:華佗、曹操具體過程可參考:nostalgia-ai.lua中的sgs.ai_skill_use_func.NosLijianCard函數(shù)該函數(shù)最終調(diào)用了:standard-ai.lua中的SmartAI:findLijianTarget函數(shù)第五十四頁,共127頁。最終結(jié)果因此,貂蟬會(huì)將【閃】(?4)當(dāng)做“離間技能卡”使用,目標(biāo)是華佗和曹操表現(xiàn)在游戲界面上,就是貂蟬棄置了【閃】(?4),對(duì)華佗和曹操發(fā)動(dòng)了技能“離間”第五十五頁,共127頁。場(chǎng)景2:響應(yīng)請(qǐng)求根據(jù)請(qǐng)求類型找到對(duì)應(yīng)的處理方案登記表根據(jù)請(qǐng)求原因在登記表中找到處理該請(qǐng)求的處理方案采用該方案處理請(qǐng)求,得出處理結(jié)果并進(jìn)行響應(yīng)第五十六頁,共127頁。請(qǐng)求類型及相應(yīng)的處理方案登記表詢問技能發(fā)動(dòng):sgs.ai_skill_invoke表詢問卡牌使用:sgs.ai_skill_use表詢問卡牌響應(yīng):sgs.ai_skill_cardask表詢問卡牌分配:sgs.ai_skill_askforyiji表詢問棄牌或卡牌交換:sgs.ai_skill_discard表詢問卡牌展示:sgs.ai_cardshow表詢問拼點(diǎn):sgs.ai_skill_pindian表第五十七頁,共127頁。請(qǐng)求類型及相應(yīng)的處理方案登記表(續(xù))詢問選擇:sgs.ai_skill_choice表詢問花色選擇:sgs.ai_skill_suit表詢問角色選擇:sgs.ai_skill_playerchosen表詢問卡牌選擇:sgs.ai_skill_cardchosen表詢問五谷豐登選牌:sgs.ai_skill_askforag表詢問觀星(集中處理,無對(duì)應(yīng)登記表)詢問無懈可擊(集中處理,無對(duì)應(yīng)登記表)詢問瀕死求桃(集中處理,無對(duì)應(yīng)登記表)第五十八頁,共127頁。響應(yīng)舉例已知目前正在進(jìn)行【萬箭齊發(fā)】的結(jié)算,當(dāng)前場(chǎng)上形勢(shì)如下:主公:標(biāo)準(zhǔn)版·孫權(quán)(5體力1手牌,1號(hào)位)忠臣:標(biāo)準(zhǔn)版·孫尚香(1體力0手牌,青釭劍,2號(hào)位)
火·龐統(tǒng)(1體力2手牌,未涅槃,4號(hào)位)
新標(biāo)準(zhǔn)版·華佗(3體力3手牌,爪黃飛電,8號(hào)位)【當(dāng)前回合角色】反賊:標(biāo)準(zhǔn)版·馬超(2體力3手牌,方天畫戟,3號(hào)位)
標(biāo)準(zhǔn)版·張遼(4體力2手牌,八卦陣,5號(hào)位)
林·曹丕(2體力3手牌,6號(hào)位)【當(dāng)前決策角色】
新風(fēng)·周泰(4體力3手牌,未不屈,7號(hào)位)內(nèi)奸不明此時(shí)曹丕因受到1點(diǎn)傷害正在被詢問選擇“放逐”的目標(biāo),應(yīng)如何進(jìn)行響應(yīng)?第五十九頁,共127頁。響應(yīng)舉例現(xiàn)在曹丕該如何作出響應(yīng)?第六十頁,共127頁。響應(yīng)處理過程這是一個(gè)“詢問角色選擇”類型的請(qǐng)求對(duì)應(yīng)的處理方案登記表為sgs.ai_skill_playerchosen表請(qǐng)求的原因是“放逐”(代碼中表示為“fangzhu”)確定處理方案為sgs.ai_skill_playerchosen.fangzhu(是一個(gè)回調(diào)函數(shù))請(qǐng)求的信息為:(1)當(dāng)前決策角色:曹丕(2)可選目標(biāo)角色:孫權(quán)、孫尚香、馬超、龐統(tǒng)、張遼、周泰、華佗采用該處理方案處理請(qǐng)求,得出處理結(jié)果第六十一頁,共127頁。處理方案的具體決策過程更新角色身份和局勢(shì)信息,得知此時(shí)的——隊(duì)友:馬超、張遼、周泰敵人:孫權(quán)、孫尚香、龐統(tǒng)、華佗局勢(shì):反賊優(yōu)勢(shì)(局勢(shì)評(píng)分:-13.100241)對(duì)所有隊(duì)友按手牌數(shù)從少到多進(jìn)行排序排序結(jié)果:張遼(2)、馬超(3)、周泰(3)依次分析每名隊(duì)友,看是否有需要翻面的隊(duì)友(結(jié)果:沒有)根據(jù)摸牌數(shù)是否不少于3張采取不同的策略此時(shí)摸牌數(shù)為1,所以將采取少于3張時(shí)的策略第六十二頁,共127頁。處理方案的具體決策過程(續(xù))采用摸牌數(shù)少于3張時(shí)的策略:對(duì)所有敵人按防御力從小到大進(jìn)行排序排序結(jié)果:孫尚香、龐統(tǒng)、華佗、孫權(quán)依次分析每個(gè)敵人,看是否有不希望被翻面且擁有技能“漫卷”的敵人結(jié)果:沒有依次分析每個(gè)敵人,看是否有不希望被翻面且擁有首要技能的敵人結(jié)果:孫尚香(擁有技能“結(jié)姻”)于是產(chǎn)生處理結(jié)果:選擇孫尚香,并以此作出響應(yīng)第六十三頁,共127頁。首要技能(sgs.priority_skill)名單締盟好施青囊集智固政奇襲結(jié)姻國色斷糧舉薦反間離間漫卷突襲巧變庸肆制衡洛神仁德明策完殺同心極略安恤奇策銀鈴傾城后援昭心雙刃詐降陷嗣峻刑筆伐燕語甚賢天隕第六十四頁,共127頁。技能按效果分類需要失去裝備的技能(sgs.lose_equip_skill):梟姬、旋風(fēng)等需要空城的技能(sgs.need_kongcheng):連營、空城等需要受傷的技能(sgs.masochism_skill):歸心、遺計(jì)等可以從判定中受益的技能(sgs.wizard_skill):鬼才、天妒等可以改判的技能(sgs.wizard_harm_skill):鬼才、鬼道等首要技能(sgs.priority_skill):締盟、青囊等可以救人的技能(sgs.save_skill):急救、補(bǔ)益等需要回避的技能(sgs.exclusive_skill):揮淚、斷腸等第六十五頁,共127頁。技能按效果分類(續(xù))需要卡牌的主動(dòng)技能(sgs.Active_cardneed_skill):咆哮、天義等需要卡牌的被動(dòng)技能(sgs.notActive_cardneed_skill):看破、鬼才等能從他人處獲得桃的技能(sgs.drawpeach_skill):突襲、巧變回復(fù)技能(sgs.recover_skill):仁德、狂骨等可以使用白銀獅子的技能(sgs.use_lion_skill):斷糧、奇襲等需要裝備牌的技能(sgs.need_equip_skill):神速、明策等直接造成傷害的技能(sgs.straight_damage_skill):強(qiáng)襲、旋風(fēng)等可以多次使用殺的技能(sgs.double_slash_skill):咆哮、父魂等依靠體力上限的技能(sgs.need_maxhp_skill):再起、英魂等負(fù)面技能(sgs.bad_skills):崩壞、無謀等第六十六頁,共127頁。場(chǎng)景3:棄牌階段棄牌其實(shí)只是場(chǎng)景2“響應(yīng)請(qǐng)求”在特定場(chǎng)合下的具體應(yīng)用而已對(duì)應(yīng)的處理方案為sgs.ai_skill_discard.gamerule函數(shù)首先對(duì)所有手牌按卡牌的保留價(jià)值由小到大進(jìn)行排序然后依次分析每張手牌,判斷其是否可以棄置選取前N張可以被棄置的手牌進(jìn)行棄置這里N為需要棄置牌的數(shù)目如果當(dāng)前角色有技能“琴音”,則N為本次至少應(yīng)棄置牌的數(shù)目第六十七頁,共127頁。卡牌的保留價(jià)值卡牌的保留價(jià)值包括預(yù)設(shè)的“卡牌保留值”、“技能保留值”、“花色保留值”、“點(diǎn)數(shù)保留值”和游戲中實(shí)時(shí)確定的“動(dòng)態(tài)保留值”五類“卡牌保留值”只與卡牌類型有關(guān)(記錄在sgs.ai_keep_value表中)“技能保留值”與當(dāng)前角色技能和卡牌類型有關(guān)
(記錄在sgs.技能名_keep_value表中)“花色保留值”與當(dāng)前角色技能和卡牌花色有關(guān)
(記錄在sgs.技能名_suit_value表中)“點(diǎn)數(shù)保留值”與當(dāng)前角色技能和卡牌點(diǎn)數(shù)有關(guān)
(記錄在sgs.技能名_number_value表中)“動(dòng)態(tài)保留值”是綜合了上述因素并結(jié)合角色自身情況得出的卡牌保留價(jià)值第六十八頁,共127頁。棄牌舉例已知場(chǎng)上局勢(shì)如下(未提到的角色均已陣亡):主公:新標(biāo)準(zhǔn)版·曹操(2體力2牌,古錠刀、仁王盾、紫骍,1號(hào)位)忠臣:標(biāo)準(zhǔn)版·甄姬(2體力4牌,諸葛連弩、八卦陣、的盧,5號(hào)位)內(nèi)奸:火·太史慈(1體力0牌,4號(hào)位)反賊:標(biāo)準(zhǔn)版·馬超(2體力1牌,青龍偃月刀、白銀獅子,7號(hào)位)標(biāo)準(zhǔn)版·大喬(1體力0牌,8號(hào)位)當(dāng)前為甄姬的棄牌階段,四張手牌為:【桃】(?2)、【酒】(?3)、【酒】(?9)、【酒】(?9)甄姬應(yīng)選擇哪兩張牌進(jìn)行棄牌?第六十九頁,共127頁。棄牌舉例現(xiàn)在甄姬應(yīng)如何棄牌?第七十頁,共127頁。獲取預(yù)設(shè)的“卡牌保留值”桃:7(數(shù)據(jù)來自:游戲目錄/lua/ai/standard_cards-ai.lua)酒:4.1(數(shù)據(jù)來自:游戲目錄/lua/ai/maneuvering-ai.lua)閃:5.2(數(shù)據(jù)來自:游戲目錄/lua/ai/standard_cards-ai.lua)第七十一頁,共127頁。獲取預(yù)設(shè)的其它保留值甄姬擁有技能“洛神”(代碼“l(fā)uoshen”)和“傾國”(代碼“qingguo”)從表sgs.qingguo_suit_value中可以得到與“傾國”相關(guān)的花色保留值:黑桃:4.1草花:4.2(數(shù)據(jù)來自:游戲目錄/lua/ai/standard-ai.lua)沒有與這些技能有關(guān)的“技能保留值”或“點(diǎn)數(shù)保留值”第七十二頁,共127頁。計(jì)算“動(dòng)態(tài)保留值”首先初步計(jì)算出每張卡牌的動(dòng)態(tài)保留值:【桃】(?2):7【酒】(?3):max(4.1,5.2)+4.1=9.3【酒】(?9):max(4.1,5.2)+4.2=9.4【酒】(?9):4.1然后根據(jù)卡牌花色、同類卡牌數(shù)目等信息進(jìn)行調(diào)整第七十三頁,共127頁。計(jì)算“動(dòng)態(tài)保留值”(續(xù))然后根據(jù)卡牌花色、點(diǎn)數(shù)、同類卡牌數(shù)目等信息進(jìn)行調(diào)整:【桃】(?2):7+0.001+0.002=7.003【酒】(?3):9.3+0.004+0.003=9.307【酒】(?9):9.4+0.003+0.009―1.2=8.212【酒】(?9):4.1+0.001+0.009―1.2―1.3=2.910最終AI將建議玩家棄掉兩張紅色牌,留下兩張黑色的【酒】。第七十四頁,共127頁。場(chǎng)景4:身份判斷根據(jù)角色行為推斷其對(duì)其他角色的敵意程度由此判斷其當(dāng)前行為跳何種身份統(tǒng)計(jì)其跳各種身份的次數(shù)根據(jù)統(tǒng)計(jì)結(jié)果及各身份剩余人數(shù)等信息推測(cè)其真實(shí)身份注意:所有AI共享使用同一套身份判斷有關(guān)的數(shù)據(jù)唯一執(zhí)行身份判斷的AI稱為“記錄者”(sgs.recorder)第七十五頁,共127頁。身份的種類游戲中的身份:主公(lord)忠臣(loyalist)內(nèi)奸(renegade)反賊(rebel)AI視角的身份:主忠(loyalist)內(nèi)奸(renegade)反賊(rebel)待定(neutral)第七十六頁,共127頁。仇恨值(intention)用于表示一名角色對(duì)另一名角色敵意程度的量值為正數(shù)表示敵視(攻擊行為),為負(fù)數(shù)表示友好(示好行為)每當(dāng)一名角色做出一次決策而導(dǎo)致游戲中的某個(gè)事件發(fā)生AI會(huì)記錄此事件的相關(guān)信息
并分析該角色在此事件中表現(xiàn)出來的對(duì)相關(guān)角色的動(dòng)機(jī)傾向然后以此更新該角色對(duì)相關(guān)目標(biāo)角色的仇恨值此功能由SmartAI:filterEvent函數(shù)組織完成(游戲目錄/lua/ai/smart-ai.lua)第七十七頁,共127頁。filterEvent函數(shù)功能:用于記錄和分析當(dāng)前發(fā)生的事件的相關(guān)信息參數(shù):事件名(event)、當(dāng)前視角角色(player)、信息數(shù)據(jù)(data)這里我們重點(diǎn)關(guān)注兩個(gè)事件:做出決定(sgs.ChoiceMade)卡牌確認(rèn)目標(biāo)后(sgs.TargetConfirmed)第七十八頁,共127頁。做出決定(sgs.ChoiceMade)是一個(gè)具有超前性的時(shí)機(jī)AI根據(jù)決定的具體類型調(diào)用對(duì)應(yīng)的分析函數(shù)進(jìn)行分析所有分析函數(shù)事先被寫進(jìn)sgs.ai_choicemade_filter表中其中“決定的具體類型”包括:使用卡牌(cardUsed)卡牌響應(yīng)(cardResponded)發(fā)動(dòng)技能(skillInvoke)做出選擇(skillChoice)使用無懈可擊(Nullification)選擇角色(playerChosen)選擇卡牌(cardChosen)分配卡牌(Yiji)觀看卡牌(viewCards)拼點(diǎn)(pindian)第七十九頁,共127頁。仇恨值在“做出決定”中的體現(xiàn)在smart-ai.lua中集中處理的、與仇恨值密切相關(guān)的決定類型有選擇角色(playerChosen)使用無懈可擊(Nullification)分配卡牌(Yiji)其余類型與上述三種類型的處理方式類似分布在各個(gè)擴(kuò)展包的AI文件中第八十頁,共127頁。與“做出決定”有關(guān)的兩類仇恨值角色選擇仇恨值:表示一名角色進(jìn)行角色選擇時(shí)對(duì)目標(biāo)角色的敵意程度記錄在sgs.ai_playerchosen_intention表中卡牌分配仇恨值:表示一名角色進(jìn)行卡牌分配時(shí)對(duì)目標(biāo)角色的敵意程度記錄在sgs.ai_Yiji_intention表中仇恨值還有一類——卡牌使用仇恨值,后面再談第八十一頁,共127頁。決定使用無懈可擊的仇恨值與被無懈可擊的錦囊牌所具有的仇恨值有關(guān)無懈可擊層級(jí):當(dāng)前場(chǎng)上已經(jīng)連續(xù)使用無懈可擊的次數(shù)如果被無懈可擊的錦囊牌不為【無懈可擊】:層級(jí):重置為1仇恨值:該錦囊牌的卡牌使用仇恨值的相反數(shù)如果被無懈可擊的錦囊牌為【無懈可擊】:層級(jí):增加1仇恨值:變?yōu)榍耙怀鸷拗档南喾磾?shù)第八十二頁,共127頁??ㄅ拼_認(rèn)目標(biāo)后(sgs.TargetConfirmed)在卡牌即將生效之前,指定完目標(biāo)之后的一個(gè)時(shí)機(jī)對(duì)應(yīng)“卡牌使用仇恨值”分別更新卡牌使用者對(duì)每一個(gè)目標(biāo)角色的敵意程度第八十三頁,共127頁。卡牌使用仇恨值表示一名角色對(duì)目標(biāo)角色使用某類卡牌時(shí)體現(xiàn)出的敵意程度記錄在sgs.ai_card_intention表中角色選擇仇恨值、卡牌分配仇恨值和卡牌使用仇恨值雖然名為“值”但是都可以寫成函數(shù)形式,從而分情況表現(xiàn)不同的敵意程度第八十四頁,共127頁。敵意程度與跳身份之間的關(guān)系每名角色都有“偏忠”、“偏反”和“偏內(nèi)”三個(gè)計(jì)量對(duì)主忠角色表示敵意(仇恨值為正),“偏忠”計(jì)量下降對(duì)主忠角色表示友好(仇恨值為負(fù)),“偏忠”計(jì)量上升對(duì)反賊角色表示敵意(仇恨值為正),“偏反”計(jì)量下降對(duì)反賊角色表示友好(仇恨值為負(fù)),“偏反”計(jì)量上升如果場(chǎng)上存在內(nèi)奸,根據(jù)實(shí)際情況更新“偏內(nèi)”計(jì)量根據(jù)三個(gè)計(jì)量的值確定角色所跳的身份第八十五頁,共127頁。更新“偏內(nèi)”計(jì)量、判定內(nèi)奸的原則主忠內(nèi)局面,沒人跳過內(nèi)奸,忠臣之間相互攻擊:不更新原跳忠臣或內(nèi)奸,攻擊主忠:“偏內(nèi)”計(jì)量上升原跳反賊,示好主忠:“偏內(nèi)”計(jì)量上升原跳忠臣或內(nèi)奸,示好反賊:“偏內(nèi)”計(jì)量上升原跳反賊,攻擊反賊:“偏內(nèi)”計(jì)量上升第八十六頁,共127頁。特殊的跳身份行為游戲第一輪,若所有角色未跳過身份,對(duì)其他非主公角色使用火攻、殺、決斗或發(fā)動(dòng)技能“銀鈴”,且不會(huì)對(duì)目標(biāo)角色造成收益的,視為對(duì)主公表示友好,“偏忠”計(jì)量上升游戲前三輪,若未跳過身份,在棄牌階段棄牌時(shí),被發(fā)現(xiàn)棄殺,而本可以殺主公:“偏忠”計(jì)量上升或者本可以殺其他已跳身份的角色:更新仇恨,進(jìn)而影響計(jì)量被發(fā)現(xiàn)棄樂不思蜀、兵糧寸斷——思路類似第八十七頁,共127頁。身份判斷舉例當(dāng)前局勢(shì)如下:主公:風(fēng)·張角(4體力4牌,白銀獅子,1號(hào)位)【主視角角色】忠臣:神·趙云(2體力3牌,紫骍,2號(hào)位)【當(dāng)前回合角色】
標(biāo)準(zhǔn)版·孫權(quán)(4體力3牌,方天畫戟、仁王盾,5號(hào)位)
新標(biāo)準(zhǔn)版·呂蒙(4體力2牌,朱雀羽扇、赤兔,8號(hào)位)反賊:風(fēng)·夏侯淵(3體力2牌,3號(hào)位)
新風(fēng)·于吉(1體力0牌,4號(hào)位)
新標(biāo)準(zhǔn)版·郭嘉(3體力2牌,6號(hào)位)
標(biāo)準(zhǔn)版·甄姬(3體力3牌,7號(hào)位)內(nèi)奸不明此時(shí)趙云用紫骍發(fā)動(dòng)“龍魂”對(duì)張角使用了【殺】,這說明什么?第八十八頁,共127頁。身份判斷舉例原跳忠臣的趙云忽然開始?xì)⒅鞴??他是在跳?nèi)奸么?第八十九頁,共127頁。分析過程首先排除流離、借刀殺人等特殊情況然后,由于殺的目標(biāo)角色(張角)有技能“雷擊”并且從使用者(趙云)的角度,張角手牌中有【閃】同時(shí)此【殺】不能造成2點(diǎn)以上的大傷害以及場(chǎng)上存在明確的反賊角色(夏侯淵等)而且趙云沒有技能“烈弓”,而張角需要發(fā)動(dòng)技能“雷擊”所以認(rèn)為這是在與張角做配合,是對(duì)主公張角示好的行為結(jié)果:趙云的“偏忠”計(jì)量上升,在當(dāng)前局面下不會(huì)被認(rèn)為是內(nèi)奸第九十頁,共127頁。事后驗(yàn)證趙云的身份是忠臣,判斷正確其他角色的身份如下:3號(hào)位:風(fēng)·夏侯淵——反賊4號(hào)位:新風(fēng)·于吉——反賊5號(hào)位:標(biāo)準(zhǔn)版·孫權(quán)——內(nèi)奸6號(hào)位:新標(biāo)準(zhǔn)版·郭嘉——反賊7號(hào)位:標(biāo)準(zhǔn)版·甄姬——反賊8號(hào)位:新標(biāo)準(zhǔn)版·呂蒙——忠臣第九十一頁,共127頁。身份判斷舉例(二)游戲第一輪,還沒有角色跳過身份,目前場(chǎng)上形勢(shì)如下:1號(hào)位:標(biāo)準(zhǔn)版·劉備(主公,5體力5牌)2號(hào)位:火·諸葛亮(3體力3牌,爪黃飛電,赤兔)3號(hào)位:標(biāo)準(zhǔn)版·孫權(quán)(4體力6牌,朱雀羽扇)【當(dāng)前回合角色】4號(hào)位:標(biāo)準(zhǔn)版·甘寧(4體力4牌)5號(hào)位:新標(biāo)準(zhǔn)版·司馬懿(3體力4牌)6號(hào)位:風(fēng)·周泰(4體力4牌)7號(hào)位:標(biāo)準(zhǔn)版·貂蟬(3體力4牌)【主視角角色,反賊】8號(hào)位:神·司馬懿(4體力4牌)此時(shí)孫權(quán)在其棄牌階段棄牌時(shí)棄置了兩張【殺】,這意味著什么?第九十二頁,共127頁。身份判斷舉例如何評(píng)價(jià)孫權(quán)的這一行為?第九十三頁,共127頁。分析過程孫權(quán)棄置了【殺】而孫權(quán)裝備有【朱雀羽扇】是可以殺到劉備主公的而且劉備也沒有影響其他角色使用【殺】的技能但孫權(quán)還是把【殺】棄掉了所以認(rèn)為這是對(duì)劉備主公表示友好的行為結(jié)果:孫權(quán)的“偏忠”計(jì)量上升,在當(dāng)前局面下被視為忠臣第九十四頁,共127頁。事后驗(yàn)證孫權(quán)的身份是內(nèi)奸,在第一輪可以認(rèn)為偏忠,判斷正確其他角色身份為:2號(hào)位:火·諸葛亮——忠臣4號(hào)位:標(biāo)準(zhǔn)版·甘寧——反賊5號(hào)位:新標(biāo)準(zhǔn)版·司馬懿——反賊6號(hào)位:風(fēng)·周泰——反賊8號(hào)位:神·司馬懿——忠臣第九十五頁,共127頁。場(chǎng)景5:分析局勢(shì)首先統(tǒng)計(jì)場(chǎng)上忠臣和反賊的人數(shù)如果沒有反賊、有忠臣存活:主忠優(yōu)勢(shì)(評(píng)分:99分)如果沒有忠臣、有反賊存活:反賊優(yōu)勢(shì)(評(píng)分:―99分)然后根據(jù)所有存活角色的體力、防御力,
以及主公狀態(tài)等情況為局勢(shì)進(jìn)行評(píng)分最后根據(jù)評(píng)分得出當(dāng)前局勢(shì)評(píng)分越高,局勢(shì)越傾向于主忠方;越低,越傾向于反賊方第九十六頁,共127頁。兩個(gè)評(píng)分公式局勢(shì)評(píng)分公式:
局勢(shì)評(píng)分=主忠評(píng)分和―反賊評(píng)分和+(主忠人數(shù)―反賊人數(shù))×3角色評(píng)分公式:
角色評(píng)分=體力+max(防御力―體力×2,0)×0.5第九十七頁,共127頁。局勢(shì)分類主忠優(yōu)勢(shì)(loyalist)主忠稍優(yōu)(loyalish)反賊優(yōu)勢(shì)(rebel)反賊稍優(yōu)(rebelish)局勢(shì)平衡(neutral)局勢(shì)糾結(jié)(dilemma)第九十八頁,共127頁。局勢(shì)評(píng)分與局勢(shì)分類的關(guān)系評(píng)分區(qū)間主公健康主公危險(xiǎn)評(píng)分≥4主忠優(yōu)勢(shì)局勢(shì)糾結(jié)2≤評(píng)分<4主忠稍優(yōu)局勢(shì)糾結(jié)―2<評(píng)分<2局勢(shì)平衡反賊稍優(yōu)―4<評(píng)分≤―2反賊稍優(yōu)反賊優(yōu)勢(shì)評(píng)分≤―4反賊優(yōu)勢(shì)第九十九頁,共127頁。角色防御力與角色的體力、手牌數(shù)、技能、裝備、座次等信息有關(guān)用于評(píng)估一名角色的生存能力主要指對(duì)【殺】的防御能力首先計(jì)算基本防御力,其值為:體力×2+手牌數(shù)然后根據(jù)角色的裝備情況和擁有的技能等信息在基本防御力的基礎(chǔ)上進(jìn)行適當(dāng)?shù)恼{(diào)整得出最終的角色防御力(參考:游戲目錄/lua/ai/smart-ai.lua中的sgs.getDefense函數(shù))第一百頁,共127頁。局勢(shì)分析舉例現(xiàn)在是標(biāo)準(zhǔn)版·甄姬的出牌階段,目前場(chǎng)上形勢(shì)如下:主公:標(biāo)準(zhǔn)版·孫權(quán)(5體力0牌,方天畫戟、八卦陣、的盧,1號(hào)位)忠臣:標(biāo)準(zhǔn)版·孫尚香(1體力1牌,2號(hào)位)
新標(biāo)準(zhǔn)版·馬超(2體力2牌,大宛,3號(hào)位)反賊:新標(biāo)準(zhǔn)版·貂蟬(2體力3牌,古錠刀、紫骍,樂不思蜀,6號(hào)位)
風(fēng)·夏侯淵(1體力0牌,7號(hào)位)
風(fēng)·周泰(4體力4牌,8號(hào)位)內(nèi)奸:標(biāo)準(zhǔn)版·甄姬(3體力3牌,雌雄雙股劍,5號(hào)位)【主視角角色】另有反賊:標(biāo)準(zhǔn)版·周瑜(4號(hào)位)已陣亡那么作為內(nèi)奸,甄姬應(yīng)該如何評(píng)價(jià)場(chǎng)上局勢(shì)?第一百零一頁,共127頁。局勢(shì)分析舉例現(xiàn)在局勢(shì)如何?第一百零二頁,共127頁。初步判斷目前忠臣有孫尚香、馬超,共2名角色反賊有貂蟬、夏侯淵、周泰,共3名角色主公孫權(quán)非常健康,沒有危險(xiǎn)當(dāng)前角色甄姬的是5號(hào)位,但因4號(hào)位周瑜已陣亡,故座次為4同理,之后的貂蟬、夏侯淵、周泰的座次依次為5、6、7第一百零三頁,共127頁。計(jì)算各角色防御力(孫權(quán))基本防御力:5(體力)×2+0(手牌數(shù))=10裝備了防具【八卦陣】:防御力+2=12裝備了防御馬【的盧】:防御力+1=13身份是主公:防御力―0.4=12.6座次加成:防御力+{7(人數(shù))―[1(座次)―4(當(dāng)前座次)]%7(人數(shù))}/4=13.35技能加成:防御力+2(技能數(shù))/4=13.85因此,孫權(quán)的防御力是13.85。第一百零四頁,共127頁。計(jì)算各角色防御力(孫尚香)基本防御力:1(體力)×2+1(手牌數(shù))=3擁有技能“結(jié)姻”:防御力+2.3=5.3體力不足2:防御力―0.4=4.9座次加成:防御力+{7(人數(shù))―[2(座次)―4(當(dāng)前座次)]%7(人數(shù))}/4=5.4技能加成:防御力+2(技能數(shù))/4=5.9因此,孫尚香的防御力是5.9。第一百零五頁,共127頁。計(jì)算各角色防御力(馬超)基本防御力:2(體力)×2+2(手牌數(shù))=6體力不足2:防御力―0.4=5.6座次加成:防御力+{7(人數(shù))―[3(座次)―4(當(dāng)前座次)]%7(人數(shù))}/4=5.85技能加成:防御力+2(技能數(shù))/4=6.35因此,馬超的防御力是6.35。第一百零六頁,共127頁。計(jì)算各角色防御力(貂蟬)基本防御力:2(體力)×2+3(手牌數(shù))=7體力不足2:防御力―0.4=6.6判定區(qū)有【樂不思蜀】:防御力―0.5=6.1擁有技能“離間”:防御力+2.2=8.3座次加成:防御力+{7(人數(shù))―[5(座次)―4(當(dāng)前座次)]%7(人數(shù))}/4=9.8技能加成:防御力+2(技能數(shù))/4=10.3因此,貂蟬的防御力是10.3。第一百零七頁,共127頁。計(jì)算各角色防御力(夏侯淵)基本防御力:1(體力)×2+0(手牌數(shù))=2體力不足2:防御力―0.4=1.6座次加成:防御力+{7(人數(shù))―[6(座次)―4(當(dāng)前座次)]%7(人數(shù))}/4=2.25技能加成:防御力+1(技能數(shù))/4=2.5因此,夏侯淵的防御力是2.5。第一百零八頁,共127頁。計(jì)算各角色防御力(周泰)基本防御力:4(體力)×2+4(手牌數(shù))=12座次加成:防御力+{7(人數(shù))―[7(座次)―4(當(dāng)前座次)]%7(人數(shù))}/4=13技能加成:防御力+1(技能數(shù))/4=13.25因此,周泰的防御力是13.25。第一百零九頁,共127頁。計(jì)算主忠評(píng)分和根據(jù)公式:角色評(píng)分=體力+max(防御力―體力×2,0)×0.5可得主忠方各角色的評(píng)分為:孫權(quán):5+max(13.85―5×2,0)×0.5=6.925孫尚香:1+max(5.9―1×2,0)×0.5=2.95馬超:2+max(6.35―2×2,0)×0.5=3.175于是,主忠評(píng)分和為: 6.925+2.95+3.175=13.05第一百一十頁,共127頁。計(jì)算反賊評(píng)分和各反賊角色的評(píng)分為:貂蟬:2+max(10.3―2×2,0)×0.5=5.15夏侯淵:1+max(2.5―1×2,0)×0.5=1.25周泰:4+max(13.25―4×2,0)×0.5=6.625所以,反賊評(píng)分和為: 5.15+1.25+6.625=13.025第一百一十一頁,共127頁。局勢(shì)評(píng)分根據(jù)公式:局勢(shì)評(píng)分=主忠評(píng)分和―反賊評(píng)分和+(主忠人數(shù)―反賊人數(shù))×3可得當(dāng)前局勢(shì)評(píng)分為: 13.05―13.025+(3―3)×3=0.025由于評(píng)分在(―2,2)范圍內(nèi),而且主公健康所以當(dāng)前局勢(shì)為——局勢(shì)平衡第一百一十二頁,共127頁。場(chǎng)景6:聊天及其它每當(dāng)一名玩家出現(xiàn)某個(gè)行為時(shí)在場(chǎng)電腦玩家就會(huì)有幾率地進(jìn)行聊天也就是說,和身份判斷一樣聊天也是對(duì)當(dāng)前發(fā)生的特定事件進(jìn)行分析和處理的結(jié)果所以依然需要借助filterEven
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年抗血小板藥項(xiàng)目建議書
- 2025年建筑防水卷材及制品項(xiàng)目建議書
- 企業(yè)臨時(shí)保安合同范本
- 合資合伙協(xié)議合同范本
- 醫(yī)院保安協(xié)議合同范本
- 合同范本 渠道疏浚
- 煤矸石燒結(jié)磚購銷合同范本
- 農(nóng)村錯(cuò)車道工程合同范例
- 叉車變賣合同范本
- 幼兒園玩具設(shè)備采購合同范本
- 數(shù)據(jù)中心容災(zāi)備份解決方案
- 七年級(jí)下冊(cè)第三單元名著導(dǎo)讀《駱駝祥子》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)(公開課公開課一等獎(jiǎng)創(chuàng)新教案及作業(yè)設(shè)計(jì))
- 2025屆新高考生物精準(zhǔn)復(fù)習(xí)+提高農(nóng)作物產(chǎn)量
- 幾何圖形中求線段線段和面積等最值問題 中考數(shù)學(xué)
- 真太陽時(shí)調(diào)整
- TD/T 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程(正式版)
- 2024年時(shí)政試題庫(奪分金卷)
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案1套
- 工程項(xiàng)目移交方案
- 高級(jí)英語-第一冊(cè)-課后習(xí)題答案
- 《帶電作業(yè)用絕緣工具試驗(yàn)導(dǎo)則》
評(píng)論
0/150
提交評(píng)論