方针
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
方针 [2025/04/19 02:11] – dangfer | 方针 [2025/04/24 04:51] (当前版本) – dangfer | ||
---|---|---|---|
行 22: | 行 22: | ||
if 未混乱 | if 未混乱 | ||
初始化权重表 | 初始化权重表 | ||
- | 记录可攻击对象 | ||
if 兵数过低 且 方针非禁止移动 | if 兵数过低 且 方针非禁止移动 | ||
W[可回复地形] += 50 ; 倾向于去回血 | W[可回复地形] += 50 ; 倾向于去回血 | ||
行 29: | 行 28: | ||
搜索进攻目标 | 搜索进攻目标 | ||
else | else | ||
- | | + | |
match 方针 | match 方针 | ||
case 前往目标/ | case 前往目标/ | ||
行 36: | 行 35: | ||
elif 目标方针有目的地 | elif 目标方针有目的地 | ||
逃向目的地 = 目标目的地 ; 不会占住目标的目的地, | 逃向目的地 = 目标目的地 ; 不会占住目标的目的地, | ||
- | if 目标是当次可达的优先对象 | + | if 存在目标 |
设置范围权重(目标位置, | 设置范围权重(目标位置, | ||
搜索进攻目标 | 搜索进攻目标 | ||
行 45: | 行 44: | ||
搜索进攻目标 | 搜索进攻目标 | ||
else | else | ||
- | | + | |
case 进攻 | case 进攻 | ||
- | | + | |
case 禁止移动 | case 禁止移动 | ||
搜索进攻目标 | 搜索进攻目标 | ||
case 防御 | case 防御 | ||
- | if 移动范围内存在优先对象 | + | if 移动范围内可被攻击 |
搜索进攻目标 | 搜索进攻目标 | ||
else | else | ||
行 68: | 行 67: | ||
检查敌军全部撤退 | 检查敌军全部撤退 | ||
- | 设置默认进攻目标: | + | 搜索缺省进攻目标: |
- | 设置移动权重(当次可达的优先对象) | + | |
- | 搜索进攻目标 | + | 搜索进攻目标 |
+ | elif 场上有敌军 且 可达 | ||
+ | | ||
+ | 搜索进攻目标 | ||
+ | else | ||
+ | 不动 | ||
设置移动权重: | 设置移动权重: | ||
行 76: | 行 80: | ||
设置范围权重(目标位置, | 设置范围权重(目标位置, | ||
else | else | ||
- | 设置范围权重(目标位置, | + | 设置范围权重(最接近目标位置, |
设置范围权重(目标位置, | 设置范围权重(目标位置, | ||
- | if w > 8 且 目标位置无权重 且 目标位置无其他人 | + | if w > 8 且 目标位置未设置权重 且 目标位置无其他人 |
W[目标位置] += w | W[目标位置] += w | ||
if 非砲车 | if 非砲车 | ||
设置范围权重(目标位置四周, | 设置范围权重(目标位置四周, | ||
- | 设置进攻目标: | + | 搜索进攻目标: |
w = W[目标位置] | w = W[目标位置] | ||
if 目标位置无其他人 且 可进攻 | if 目标位置无其他人 且 可进攻 | ||
- | w_a = 设置攻击目标 | + | w_a = 搜索攻击目标 |
if 可用策略 | if 可用策略 | ||
- | w_s = 设置策略目标 | + | w_s = 搜索策略目标 |
w += max(w_a, w_s) | w += max(w_a, w_s) | ||
- | w += 地形权重 ; 村5, 寨6, 兵营4, 城8, 关7, BUGGY: 当前位于城门, | + | w += 地形权重 ; 村5, 寨6, 兵营4, 城8, 关7, BUGGY: 当前位于城门, |
if 原地 且 w_a = 0 ; 防止不打人时乱跑 | if 原地 且 w_a = 0 ; 防止不打人时乱跑 | ||
w += 1 | w += 1 | ||
行 102: | 行 106: | ||
更新w_max, | 更新w_max, | ||
- | 设置攻击/ | + | 搜索攻击/ |
each 可攻击对象B | each 可攻击对象B | ||
if w < 计算目标攻击/ | if w < 计算目标攻击/ | ||
行 150: | 行 154: | ||
return 0 | return 0 | ||
if 策略为火/ | if 策略为火/ | ||
- | if (策略不为火计 或 不下雨) 且 (A.智力 >= B.智力 * 0.4) | + | if (策略不为火计 或 不下雨) 且 (A.智力 >= B.智力 * 0.4) (factor: 5) |
w = 可以秒杀 ? 80 : 20 | w = 可以秒杀 ? 80 : 20 | ||
- | if 策略为物见/ | + | if 策略为物见/ |
w = 17 | w = 17 | ||
- | if 策略为压迫/ | + | if 策略为压迫/ |
w = 18 | w = 18 | ||
- | if 策略为骂声/ | + | if 策略为骂声/ |
w = 19 | w = 19 | ||
if 策略为伪情报/ | if 策略为伪情报/ | ||
- | if 策略为伪情报/ | + | if 策略为伪情报/ |
w = 22 | w = 22 | ||
if 策略为牵制 且 B.攻击速度 > 7 | if 策略为牵制 且 B.攻击速度 > 7 | ||
行 170: | 行 174: | ||
if 策略为补给/ | if 策略为补给/ | ||
w = 策略回复权重(类型=兵数) | w = 策略回复权重(类型=兵数) | ||
- | if 策略为助言/ | + | if 策略为助言/ |
w = 策略回复权重(类型=策略) | w = 策略回复权重(类型=策略) | ||
if B为物资队 或 对自身使用 | if B为物资队 或 对自身使用 | ||
return 0 | return 0 | ||
- | if 策略为奋起/ | + | if 策略为奋起/ |
if B.攻击/ | if B.攻击/ | ||
if 非困难模式 或 (策略为奋起/ | if 非困难模式 或 (策略为奋起/ | ||
行 200: | 行 204: | ||
if B移动↓ | if B移动↓ | ||
w = 26 | w = 26 | ||
- | if 策略为对策 且 B未处于对策状态 | + | if 策略为对策 且 B未处于对策状态 |
w = 13 | w = 13 | ||
if 策略为回归 且 B已行动完毕 | if 策略为回归 且 B已行动完毕 | ||
行 231: | 行 235: | ||
return w | return w | ||
- | 搜索操作存在BUG: | + | 搜索操作存在BUG: |
+ | 移动范围内可被攻击: | ||
+ | 移动范围内可被攻击即遍历自身移动范围时, | ||
</ | </ | ||
方针.1745025091.txt.gz · 最后更改: 2025/04/19 02:11 由 dangfer