shavy 发表于 2003-12-29 12:04:15

================问个AI的问题!============

(defrule
(or (building-type-count town-center < 1)
(unit-type-count-total villager < 4))
(unit-type-count-total villager < 8)
(soldier-count <= 2)
(players-population any-enemy >= 15)

这是AzKing里面关于投降条件判断的一部分,对这个条件里面的那个“or”用法不是很理解!谁能帮忙翻译一下这几句是什么意思?谢了!!

shavy 发表于 2003-12-30 04:26:20

这个知道,但觉得奇怪的就是为什么or是放在两个并列条件的前面,而不是中间的。
还有,如果有好几个条件并列,比如
假如
(我有10个骑兵)或者(我有10个骑射手)或者(我有10个火枪手)

(进攻)
应该怎么写?

我试了,好像
or(...)
   (...)
   (...)

or(...)
or(...)
   (...)
都不行,总是出错,要怎么表示?

shavy 发表于 2004-1-1 20:17:33

还是要自己来回答……

以下是引用shavy在2003-12-30 4:26:20的发言:
这个知道,但觉得奇怪的就是为什么or是放在两个并列条件的前面,而不是中间的。
还有,如果有好几个条件并列,比如
假如
(我有10个骑兵)或者(我有10个骑射手)或者(我有10个火枪手)

(进攻)
应该怎么写?

我试了,好像
or(...)
    (...)
    (...)

or(...)
or(...)
    (...)
都不行,总是出错,要怎么表示?


要这样写:
or(or(有10个骑兵)
       (10个骑射手)
   )
   (有10个火枪手)

[此贴子已经被作者于2004-1-1 20:18:32编辑过]

_CCC_大智 发表于 2004-2-2 16:39:02

and有什么实际应用吗?

闲闲 发表于 2004-7-27 00:11:57

逻辑关系呀,or是或,and是和。你引的那个是Azking关于认输的判断,如果自己没TC了只有少于8个的农民,或有TC却是只有少于4个农民,自己的兵只有少于2人,而敌人有15以上的兵就让认输。。。说得我都绕进去了。。。

_CCC_大智 发表于 2004-7-28 10:15:11

and比如(defrule    (有0个兵)    (有0个农)=》(作弊10000000000000黄金))不用and不也是要求两个都是真才实现么?

闲闲 发表于 2004-7-29 00:49:57

那样用不用and都一样. and 的作用是用在比较重复的条件里, 比如(or (条件一) (and (条件二) (条件三)))这种是或条件一满足, 若条件一不满足就要条件二和条件三都满足才行..

_CCC_大智 发表于 2004-10-7 18:37:10

24好麻烦哦
页: [1]
查看完整版本: ================问个AI的问题!============