赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 23360 |
最后登录 | 2017-9-11 |
在线时间 | 188 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 188 小时
- 注册时间
- 2013-4-18
- 帖子
- 15
|
我也在做战棋游戏,对于AI的问题我也想了很久,我认为AI主要是两点。
1.AI的行进路线。如果AI行军,包括主动进攻,撤退逃离必须找到一条合适的路径。一开始想用坐标定位,如果目标横坐标大于AI则此回合AI横坐标+移动点数,但问题是假设AI无法渡河但是中间有河那么AI将会卡在河岸。用群聚算法太复杂又效率低下。所以采用A*算法。对于slg可以申请一个大小与地图一样的x*y的整型数组,把目标点作为起点,用A*算法计算每个坐标消耗的移动点数,计算好之后就得到了一张从目标点到各坐标的移动点数分布图,它类似一张等高图,只要在没回合向数值最低的坐标移动就行了。
2.AI的攻击策略。包括是否占据有利地形,是攻击战斗力高的单位还是攻击血少的单位,是去占领地方主要据点还是消灭路上的敌军等。这个还没来得及去想。
顺便说一下我用的是C,对RM不熟悉,不太了解用脚本是否容易实现我说的东西,希望对lz有帮助。 |
|