王者光耀第二次

1、思路描述。
我负责小兵类的构建,在负责写英雄类的队友已经写完英雄类之后写小兵类就变得很简单了。小兵和英雄差别只不过是小兵没有经验和大招,删除这些元素之后就可以变成小兵了。另外我设定小兵前面有人就停下攻击,所以另外加了一个判断前面又没地方单位的函数。再就是构造函数可以再写一个。
2、与英雄类一样的详见队长的博客,不一样的是多了一个Gmove函数,用来判断它前方是否有敌人,以判断是否攻击或移动。
还有一个loadguard的函数用来生成小兵。
3、
void loadguard(kar **x)
{
int i=0,p=3;
for(i=1;i<=4;i++)
{
while(1)
{
if(x[p]!=NULL)p++;
else break;
}
x[p]=new kar(111,111,1,15,i);
}
for(i=1;i<=4;i++)
{
while(1)
{
if(x[p]!=NULL)p++;
else break;
}

    x[p]=new kar(111,111,1,34,i);
}

}//生成小兵

kar(double Bblood,int atta,int spe,int px,int py):Basicblood(Bblood),attack(atta),speed(spe),prepos(px,py)
{
nowpos=prepos;
EXP=0;
grade=1;
blood=Maxblood=Basicblood;
if(prepos.ix>25)
{
dir=-1;
camp=2;
}
else
{
dir=1;
camp=1;
}
time=0;
last=-11;
int i(0);
for(; i<60; i++)b[i]=NULL;
}//小兵构造函数

void Gmove(char c,kar **x)
{
int p=0,flag=1;
while(p<100)
{
if(x[p]==NULL)
{
p++;
continue;
}
if(x[p]->camp==1&&x[p]->nowpos.ix==nowpos.ix+1&&x[p]->nowpos.iy==nowpos.iy )
{
flag=0;break;
}
if(x[p]->camp==2&&x[p]->nowpos.ix==nowpos.ix-1&&x[p]->nowpos.iy==nowpos.iy )
{
flag=0;break;
}
p++;
}
if(flag==0)return;
else move(c);
} //小兵移动
4、花费时间。
一共花了3.5个小时,由于主要部分队长已经完成了,所以花费时间不多。
5、遇到的问题
*x[]的传参,问过队长之后就没什么问题了。
6、见队长博客。

转载于:https://www.cnblogs.com/menmamizigeda/p/9200784.html

你可能感兴趣的:(王者光耀第二次)