赞 | 6 |
VIP | 22 |
好人卡 | 15 |
积分 | 13 |
经验 | 97563 |
最后登录 | 2022-11-26 |
在线时间 | 831 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1323
- 在线时间
- 831 小时
- 注册时间
- 2007-12-25
- 帖子
- 1558
|
我也来凑热闹了
想给敌人增加AI的话,建议你写一个构架,敌方AI管理器。
而不是想出一个就添加一个,到时候很难维护,越多越乱,会导致坑掉的。
奉献思路一枚,我想照此写出来,以前狂按确定的几个小B配合就让玩家抓狂了。
首先,是一个可调AI强度,0-10。
写一个战斗力评估算法,这个根据自己的游戏设置来具体评估的。
比如 战斗力 = (攻击力*20+防御力*10+敏捷*10……)*HP百分比+MP等等等等……技能,这是很复杂的算法,但是你可以自己想出来,并且写出来。
战斗开始时,将所有敌人加入队友集。(以下敌人,主角均面向玩家而言。)
等到敌人行动时,遍历该敌人所有的行动。比如攻击→主角1234,技能1→主角1234,回复→敌人12345
复制对象,并且模拟使用后的结果,记录下评分。全部遍历完后对比所有的结果评分。所谓的评分,就是我方战斗力-敌方战斗力。
如果AI强度是1的话,选择评分最高的行动。
如果 AI强度是2的话,选择评分前30%的行动。再次迭代下一个行动的角色的行动获得全部评分。
如果下一个行动是主角,遍历所有的行动,并对结果进行分析,将评分最低的30%的行动进行统计。如此递归
总的来说,AI强度每强1级,电脑就会想一步,如果AI强度为10,它会计算接下来10次行动可能造成的结果,来决定这次行动。
当然那计算量相当大。
以上要多看几遍,并且有人讨论才能完成。
简单地说,就是遍历所有的行动,所造成的结果进行评分统计。
也支持对以后的行动进行预测评分。 |
|