游戏编程入门学习笔记25——AI篇——AI策略的制定(策划)

按前文的构思很快改好了程序,暂未发现异常。

现在可以开始做AI了。

 

因为我这个游戏比较简单,只要在合适的距离出腿就行了,所以理论上我可以编出一个无敌的电脑选手。

具体按这个策略:

在每一个循环结束时,如果双方距离大于腿长减去对方步长,则前进,否则出腿。

当然仅仅这样也会有漏洞,假如对方在你即将进入攻击范围内的那一瞬间出腿,下一步就撞在枪口上了。所以在距离仅差一步时,要加上对对方动作的判断,如果对方出腿,则停止,待对方收腿时抓住机会上前进攻。

更极端点,对方可能出腿一下立马缩回,然后伺机反击,所以在自己出腿时,也要随时注意敌方是否早早后退。但这样的策略有点完备过头了,毕竟我们是考虑如何让计算机击败玩家,而不是和另一台计算机对抗。实际上一开始减去一个步长的策略,就已经是考虑进了人的反应时间,假如是计算机,需要靠近更多,可能是两到三个步长。

所以一切从简,这个无敌的策略,可以留下些理论上的破绽,假如有真实玩家能击败这个机器人,那他一定是开了挂。

 

其实很多游戏,只要是比拼反应而非策略的,像CS里的机器人,自然也是可以做到不可战胜的。

但是这样就太无聊了,搞不好弄得玩家瞬间斯巴达然后狂问候家属。为了增添游戏的趣味性,同时也是为了练习,我决定做出几个不同难度等级的AI,最好各自有自己的性格特征。

 

前面所说的无敌型算一个,可以取名李小龙,让玩家感受什么叫绝望。

第二个难度对距离的掌握会稍有偏差,可能会远远的踢空,也可能过于深入危险距离。尽量模拟理智型玩家。取名为刘伟。

第三个难度对距离的掌握会更差,同时出腿的时机更无规律性,这样总体来说虽然更易战胜,但也可能偶尔会被其莽撞的出腿击中。取名为郑进。

最后一个难度设定得比较奇怪点,它在一般时候最无距离感最迟钝,但在即将死亡时变得极其凶悍,即化身无敌模式,持续一段时间后变回。取名为小强。

 

恩,人的创造力是无穷的,即便是如此简单的游戏规则也可以玩出花来,暂时就做这么几个角色,太多了也费工夫。

你可能感兴趣的:(游戏编程入门学习笔记25——AI篇——AI策略的制定(策划))