楼主: a000b1745

[已经解决] 請問敵人使用的補血技能、對象可否更改為HP最低者?

[复制链接]
梦石
0
星屑
1408
在线时间
831 小时
注册时间
2007-12-25
回帖
1406
发表于 2014-6-13 22:20:58 | 显示全部楼层
我也来凑热闹了
想给敌人增加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次行动可能造成的结果,来决定这次行动。
当然那计算量相当大。

以上要多看几遍,并且有人讨论才能完成。
简单地说,就是遍历所有的行动,所造成的结果进行评分统计。
也支持对以后的行动进行预测评分。

点评

AI 10的话 以ruby的效率 极有可能卡顿从而造成不好的游戏体验……  发表于 2014-6-14 11:26
這可是要非常強大的邏輯腦力阿...  发表于 2014-6-14 10:23
精卫赤龙腾    九
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程    夜
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     神
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    尊
只是带着一种决心,去争取残存的最后的希望。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部