zoukankan      html  css  js  c++  java
  • 王者光耀第三次

    1、思路描述:
    我是负责小兵的AI部分,其实小兵的移动和攻击和英雄有许多相似之处,理应继承于同一个基类,但是我们偷了个懒,就没用继承。而小兵AI的重点就在于什么时候移动,什么时候停止。我是在小兵前面有敌人时让小兵停止移动并开始攻击,这里我就套用了英雄的移动和攻击函数,不同之处在于需要先判断小兵前面有没有敌人,还有小兵的攻击距离为一。
    2、代码说明:代码相较于上次有所改进。

    void kar::Gmove(kar **x)
    {
    	ed=clock();
    	if(ed-bg<1000)return ;
    	bg=ed;
    	pos *itsp;
    	int p=0,flag=1,i;
    	for(i=10;i<29;i++)
    	{
    		if(x[i]==NULL)continue;
    		itsp=new pos(x[i]->nowpos);
    		itsp->ix+=x[i]->dir;
    		for(p=0;p<29;p++)
    		{
    			if(x[p]==NULL)continue;
    			if(x[p]->camp!=x[i]->camp&&x[p]->nowpos==*itsp)
    			{
    				x[p]->attacked(x[i]->attack);//如果前方有敌人就进行攻击
    				break;
    			}
    		}//判断小兵前方有无敌人
    		delete itsp;
    		if(x[i]->blood<=0)
    		{
    			delete x[i];x[i]=NULL;continue;
    		}
    		if(p==29)x[i]->move(x[i]->dir);//如果把存放小兵的指针数组扫描完没有发现前方有敌人就移动
    	}
    }
    
    3、各阶段花费时间:
    

    在第一阶段,讨论时间为3到4个小时,对小兵的类的构建用了两个小时。
    在第二阶段,采取边讨论边敲代码的方式,讨论了三个小时,回去又接着敲了小兵的移动又敲了两三个小时。
    在第三阶段,对小兵移动和攻击进行改进,又花了三个小时。
    4、遇到的困难:
    虽然我不是负责通过键盘来操控英雄部分的,但是我为了能学到怎么一秒移动一格,我去百度了一下,然后就了解到了clock()的用法。

  • 相关阅读:
    ubuntu shell插件
    通过更改服务器解决双系统ubuntu时间+8
    ubuntu安装mysql遇到的问题
    05 面向对象:构造方法&static&继承&方法 &final
    electron 大体结构
    js时间Date对象介绍及解决getTime转换为8点的问题
    Fiddler命令行和HTTP断点调试
    使用HTTP头去绕过WAF(bypasswaf)
    Linux下php5.3.3安装mcrypt扩展
    Error: Cannot find a valid baseurl for repo: epel
  • 原文地址:https://www.cnblogs.com/menmamizigeda/p/9240614.html
Copyright © 2011-2022 走看看