#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main()
{
srand((unsigned)time(NULL));
char map[30][30]={" ",
" 1 2 3 4 5 6 7 8 9 ",
" 1# ",
" 2# ",
" 3# ",
" 4# ",
" 5# ",
};
char al[28]={" abcdefglijklmnopqrstuvwxyz"},as[28]={" . "},in,zomty[51],type[51],st[51];
char ty[50][50]={" 豌豆射手",
" 向日葵",
" 坚果墙",
};
int x[51]={0},y[51],hp[51],zomx[51]={0},zomy[51],zomhp[51],sx[51]={0};//y为列(长),x为行(宽)
int sy[51],willx,willy,sb=1,timer=1,a,b,c,t,zomtime,sun=150,sp[28]={0,100,50};
//僵尸出现在哪一行
while(sb==1)
{
if(timer%35==0)
sun+=25;
printf("%d阳光\n",sun);
for(a=1;a<=6;a++)//宽度
puts(map[a]);
while(kbhit())
{
in=getch();
for(a=1;a<=27;a++)
{
if(in==al[a])//如果是al里的一个字母
{
puts(ty[a-1]);
printf("你要种在哪一行?");
scanf("%d",&willx);
printf("你要种在哪一列?");
scanf("%d",&willy);
if(willy>5||willy<1||willx>9||willy<1||sun-sp[a]<0||map[willx+1][willy*2+1]!=' ')
{
printf("错误!");
Sleep(500);
break;
}
else
{
sun-=sp[a];
for(b=1;b<=50;b++)
if(x[b]==0)
{
willy=willy*2+1;
willx++;
x[b]=willx;
y[b]=willy;
if(in=='c')
hp[b]=500;
else
hp[b]=80;
type[b]=in;
map[x[b]][y[b]]=type[b];
break;
}
break;
}
}
}
}
for(a=1;a<=50;a++)//主循环
{ //僵尸代码
if(zomx[a]!=0)
if(timer%8==0)
if(map[zomx[a]][zomy[a]-1]!=' ')
if(map[zomx[a]][zomy[a]-1]=='.')
{
zomhp[a]-=10;
for(b=1;b<=50;b++)
if(sx[b]+1==zomx[a]&&sy[b]+1==zomy[a])
{
sx[b]=0;
break;
}
}
else
{
if(64<map[zomx[a]][zomy[a]-1]&&map[zomx[a]][zomy[a]-1]<91)//僵尸
t=1;
if(96<map[zomx[a]][zomy[a]-1]&&map[zomx[a]][zomy[a]-1]<123)//植物
for(b=1;b<=50;b++)
if(x[b]+1==zomx[a]&&y[b]+1==zomy[a])
{
hp[b]-10;
t=1;
if(hp[b]<=0)
{
sx[b]=0;
break;
}
}
}
if(zomx[a]!=0)
if(t!=1)
{
map[zomx[a]][zomy[a]]=' ';
zomy[a]--;
map[zomx[a]][zomy[a]]=zomty[a];
}
if(x[a]!=0&&timer%15==0)//植物代码
if(type[a]=='a')
if(sx[a]==0)
{
sx[a]=x[a];
sy[a]=y[a]+1;
for(b=1;b<=50;b++)
if(type[a]==al[b])
st[a]=as[b];
map[sx[a]][sy[a]+1]=st[a];
break;
}
if(x[a]!=0&&timer%30==0)
if(type[a]=='b')
sun+=25;
if(timer%9==0)
{
if(sx[a]!=0)
if(map[sx[a]][sy[a]+1]==' ')
{
map[sx[a]][sy[a]]=' ';
sy[a]++;
map[sx[a]][sy[a]]=st[a];
}
else
if(sy[a]==21)
{
map[sx[a]][sy[a]]=' ';
sx[a]=0;
break;
}
else
for(b=1;b<=50;b++)
if(sy[a]+1==zomy[b]&&sx[a]==zomx[b])
{
zomhp[b]-=10;
if(zomhp[b]<=0)
{
zomx[b]=0;
map[zomx[b]][zomy[b]]=' ';
}
map[sx[a]][sy[a]]=' ';
sx[a]=0;
break;
}
}
}
Sleep(200);
system("cls");
timer++;
}
printf("失败了!");
Sleep(10000);
return 0;
}
|