狂~劇情狂 发表于 2012-5-24 19:55:47

默认AI投降条件

以征服者1.0版為準,預設人工智慧的投降指令為以下代碼:

(defrule
      (goal 1 19)
      (building-type-count barracks == 0)
      (building-type-count archery-range == 0)
      (building-type-count stable == 0)
      (building-type-count siege-workshop == 0)
=>
      (set-goal 1 9)
      (disable-self)
)

(defrule
      (goal 1 9)
=>
      (chat-to-all-using-range 2230022)
      (chat-to-all-using-id 22322)
                ;"No wonder thou wert victorious! I shalt abdicate."
      (resign)
      (disable-self)
)

其投降條件為目標 1 的值為 9 ,而將目標 1 設定為 9 的條件則有五項:

一、目標 1 的值為 19
二、擁有 0 個軍營
三、擁有 0 個射箭場
四、擁有 0 個馬廄
五、擁有 0 個攻城器製造所

首項當然又牽涉到其他代碼,列舉如下:

(defrule
      (difficulty >= easy)
      (game-time > 600)
      (soldier-count < five-percent-pop)
      (unit-type-count-total villager <= 4)
      (nor
                (hold-relics)
                (hold-koh-ruin)
      )
=>
      (set-goal 1 19)
      (disable-self)
)

(defrule
      (difficulty == moderate)
      (game-time > 600)
      (building-type-count wonder < 1)
      (soldier-count < five-percent-pop)
      (unit-type-count-total villager <= 2)
      (nor
                (hold-relics)
                (hold-koh-ruin)
      )
=>
      (set-goal 1 19)
      (disable-self)
)

(defrule
      (difficulty <= hard)
      (game-time > 600)
      (building-type-count wonder < 1)
      (soldier-count <= 3)
      (unit-type-count cannon-galleon-line == 0)
      (unit-type-count-total villager == 0)
      (nor
                (hold-relics)
                (hold-koh-ruin)
      )
=>
      (set-goal 1 19)
      (disable-self)
)

三條規則分別是說:難易度為容易或以下時,遊戲時間大於 600 秒,地上士兵數量少於 5% 的人口,村民少於或等於 4 人,且未控制全部遺跡或至尊王紀念物,則將目標 1 的值設為 19 ;難易度為中等時,遊戲時間大於 600 秒,擁有少於 1 個世界奇觀,地上士兵數量少於 5% 的人口,村民少於或等於 2 人,且未控制全部遺跡或至尊王紀念物,則將目標 1 的值設為 19 ;難易度為困難或以上時,遊戲時間大於 600 秒,擁有少於 1 個世界奇觀,地上士兵數量少於或等於 3 ,沒有任何火砲戰船及村民,且未控制全部遺跡或至尊王紀念物,則將目標 1 的值設為 19 。以上情況可大致理解為電腦遊戲者的投降條件。

與投降相關的人工智慧內容在官方教程裡亦有涉及,請到下載中心參看本人漢化的人工智慧官方教程。

狂~劇情狂 发表于 2012-5-26 07:02:29

1

全部條件達成,唯一的「或」考慮是「未控制全部遺跡」與「未控制至尊王紀念物」。

5% 是對遊戲初始設定的最大人口而言,可以是 1, 2, 3, 5, 6, 7, 8, 10 ,與玩家當時的人口空間無關。

;*************************************************************
#load-if-defined POPULATION-CAP-25
(defconst civ-dark-rush 10)
(defconst civ-dark 11)
(defconst civ-dark-mod 10)
(defconst civ-feudal-mod 12)
(defconst civ-feudal 13)
(defconst civ-castle 15)
(defconst pop-cap 25)
(defconst deathmatch-unit-max 13)

(defconst feudal-town-size 20)
(defconst castle-town-size 25)
(defconst imperial-town-size 25)
(defconst town-center-count 2)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 19)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 19)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 21)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 23)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 23)
#end-if

(defconst five-percent-pop 1)
(defconst ten-percent-pop 3)
(defconst fifteen-percent-pop 4)
(defconst twenty-percent-pop 5)
(defconst thirty-percent-pop 8)
(defconst fifty-percent-pop 12)
#end-if
;***************************
#load-if-defined POPULATION-CAP-50
(defconst civ-dark-rush 15)
(defconst civ-dark 20)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 30)
(defconst civ-castle 35)
(defconst pop-cap 50)
(defconst deathmatch-unit-max 25)

(defconst feudal-town-size 20)
(defconst castle-town-size 25)
(defconst imperial-town-size 30)
(defconst town-center-count 3)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 35)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 35)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 40)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 45)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 45)
#end-if

(defconst five-percent-pop 2)
(defconst ten-percent-pop 5)
(defconst fifteen-percent-pop 7)
(defconst twenty-percent-pop 10)
(defconst thirty-percent-pop 15)
(defconst fifty-percent-pop 25)
#end-if
;***************************
#load-if-defined POPULATION-CAP-75
(defconst civ-dark-rush 20)
(defconst civ-dark 25)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 35)
(defconst civ-castle 40)
(defconst pop-cap 75)
(defconst deathmatch-unit-max 55)

(defconst feudal-town-size 20)
(defconst castle-town-size 30)
(defconst imperial-town-size 30)
(defconst town-center-count 4)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 56)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 56)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 63)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 70)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 70)
#end-if

(defconst five-percent-pop 3)
(defconst ten-percent-pop 8)
(defconst fifteen-percent-pop 10)
(defconst twenty-percent-pop 15)
(defconst thirty-percent-pop 23)
(defconst fifty-percent-pop 37)
#end-if
;***************************
#load-if-defined POPULATION-CAP-100
(defconst civ-dark-rush 20)
(defconst civ-dark 25)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 40)
(defconst civ-castle 50)
(defconst pop-cap 100)
(defconst deathmatch-unit-max 70)

(defconst feudal-town-size 20)
(defconst castle-town-size 30)
(defconst imperial-town-size 35)
(defconst town-center-count 5)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 70)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 70)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 80)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 90)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 90)
#end-if

(defconst five-percent-pop 5)
(defconst ten-percent-pop 10)
(defconst fifteen-percent-pop 15)
(defconst twenty-percent-pop 20)
(defconst thirty-percent-pop 30)
(defconst fifty-percent-pop 50)
#end-if
;***************************
#load-if-defined POPULATION-CAP-125
(defconst civ-dark-rush 20)
(defconst civ-dark 25)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 40)
(defconst civ-castle 55)
(defconst pop-cap 125)
(defconst deathmatch-unit-max 95)
(defconst town-center-count 6)

(defconst feudal-town-size 20)
(defconst castle-town-size 35)
(defconst imperial-town-size 40)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 90)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 90)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 103)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 115)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 115)
#end-if

(defconst five-percent-pop 6)
(defconst ten-percent-pop 13)
(defconst fifteen-percent-pop 18)
(defconst twenty-percent-pop 25)
(defconst thirty-percent-pop 38)
(defconst fifty-percent-pop 62)
#end-if
;***************************
#load-if-defined POPULATION-CAP-150
(defconst civ-dark-rush 20)
(defconst civ-dark 25)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 40)
(defconst civ-castle 60)
(defconst pop-cap 150)
(defconst deathmatch-unit-max 120)

(defconst feudal-town-size 20)
(defconst castle-town-size 35)
(defconst imperial-town-size 40)
(defconst town-center-count 7)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 110)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 110)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 125)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 140)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 140)
#end-if

(defconst five-percent-pop 7)
(defconst ten-percent-pop 15)
(defconst fifteen-percent-pop 22)
(defconst twenty-percent-pop 30)
(defconst thirty-percent-pop 45)
(defconst fifty-percent-pop 75)
#end-if
;***************************
#load-if-defined POPULATION-CAP-175
(defconst civ-dark-rush 20)
(defconst civ-dark 25)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 40)
(defconst civ-castle 65)
(defconst pop-cap 175)
(defconst deathmatch-unit-max 145)

(defconst feudal-town-size 20)
(defconst castle-town-size 35)
(defconst imperial-town-size 40)
(defconst town-center-count 8)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 125)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 125)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 145)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 165)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 165)
#end-if

(defconst five-percent-pop 8)
(defconst ten-percent-pop 18)
(defconst fifteen-percent-pop 27)
(defconst twenty-percent-pop 35)
(defconst thirty-percent-pop 53)
(defconst fifty-percent-pop 87)
#end-if
;***************************
#load-if-defined POPULATION-CAP-200
(defconst civ-dark-rush 20)
(defconst civ-dark 25)
(defconst civ-dark-mod 15)
(defconst civ-feudal-mod 20)
(defconst civ-feudal 40)
(defconst civ-castle 70)
(defconst pop-cap 200)
(defconst deathmatch-unit-max 170)

(defconst feudal-town-size 20)
(defconst castle-town-size 35)
(defconst imperial-town-size 40)
(defconst town-center-count 9)

#load-if-defined DIFFICULTY-EASIEST
(defconst unit-max 130)
#end-if

#load-if-defined DIFFICULTY-EASY
(defconst unit-max 130)
#end-if

#load-if-defined DIFFICULTY-MODERATE
(defconst unit-max 160)
#end-if

#load-if-defined DIFFICULTY-HARD
(defconst unit-max 190)
#end-if

#load-if-defined DIFFICULTY-HARDEST
(defconst unit-max 190)
#end-if

(defconst five-percent-pop 10)
(defconst ten-percent-pop 20)
(defconst fifteen-percent-pop 30)
(defconst twenty-percent-pop 40)
(defconst thirty-percent-pop 60)
(defconst fifty-percent-pop 100)
#end-if
;*************************************************************

狂~劇情狂 发表于 2012-5-26 08:47:56

2

這點代碼沒有清楚交代, 按理應該是遊戲設定畫面的人口上限, 即建房選的, 但具體你可能還是要測一測

此外關於投降, 注意你是選擇了"無"還是預設AI做為電腦遊戲者的性格

至於鷹與AI無關, 另外鷹隨機器太老了, 建議改用衝撞車進駐隨機器, 當然最好還是用自訂AI的隨機數字

如果有難易度影響遊戲流暢度的感覺, 應該是因為其動員人數較低的緣故...另外倒是可以確定人手下令AI行動有時拖慢聯機表現,因為是突然增加了其動員的部隊數量

页: [1]
查看完整版本: 默认AI投降条件