战棋游戏AI分析 - 三国志英杰传 不让玩家过第一关
三国英杰传吧
全部回复
仅看楼主
level 1
neoe🎅 楼主


2022年08月02日 05点08分 1
level 1
neoe🎅 楼主
三国志英杰传,看到玩家20+99级的玩法,我非常不解:难道电脑恶意放水,导致游戏太简单,而被玩家暴虐?
于是我尝试设计AI算法,目标是让玩家打不过第一关。
开发这个AI后发现草帅了。早就应该知道,战棋游戏AI没那么简单。
状态数量是多少呢? 假设我方队伍人数为A,敌方为B, 那么来回一个回合,由于行动次序是自由的,每个棋子有10-40种走法。骑兵在平原上有40+走法。
所以状态数为 A!*B!*40^(A+B) -- n!为阶乘,比指数更可怕的增长率。所以要考虑行动先后的搜索一般都难。
不可能穷举,穷举一点边都不行。
所以最后做了一个单方秒杀的穷举(7个单位,秒杀敌方3个单位,10秒以内)。其他方面还是用专家规则。看几步还是想多了。
一些事实
1。华雄和李肃可以秒掉关羽或张飞
如果用张飞做诱饵,引出华雄,让关羽单挑...
2。况且还有其他步兵,只要团住,不主动出击。甚至保持队形,大军压上。也能取胜。
3。这样玩家胜是无聊。AI如果有一些不知所为的行动,也能给人带来一些乐趣。
结论: 看上去弱智的战棋游戏数学上难度等同于象棋类游戏。
让人类过不了第一关还是可以的(这个版本不接受单挑,避开关羽单挑华雄算法上再要复杂一点,但是兵力在那边,第一关还是能守住的)。
2022年08月02日 05点08分 2
level 2
这直接改成PVP好了[酷]
2022年08月02日 09点08分 3
那猥琐起来防守的无解,都不进攻
2022年08月04日 10点08分
level 9
前提是有回合限制,超时算玩家输,否则应该是平局,且玩家不能喊援军
2022年08月02日 12点08分 4
援军和买道具都没加上,那样可能有的一拚
2022年08月02日 21点08分
这种反击很少的规则,为了取的秒杀机会,都是等对方先上。
2022年08月02日 21点08分
@neoe🎅 可以卡在桥头的,敌方过不来
2022年08月02日 23点08分
level 3
那样的话如果我方等级很高,AI知道差距太大,会不会都躲起来或者逃跑[滑稽]
2022年08月04日 10点08分 5
1