回复 7楼 wmf2014
哦!谢谢你!但是我现在加入了敌机这个元素,但是不知道为什么运行了一段时间之后飞机突然自动变形了!请问一下是为什么,然后怎么改。。
#include
#include
#include
#include
#include
int map[50][40],oldmap[50][40];
clock_t Now_Time=clock();
void HideCursor();
void gotoxy(int x,int y);
void drawmap();
void setplane();
void HideCursor()
{
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursor_info={1,0};
SetConsoleCursorInfo(hOut,&cursor_info);
}
void gotoxy(int x,int y)
{
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
COORD loc={x,y};
SetConsoleCursorPosition(hOut,loc);
}
void drawmap()
{
int x,y,j;
char a,b;
for(x=0;x<50;x++)
for(y=0;y<40;y++)
{
gotoxy(x,y);
j=map[x][y];
if(j==0)
a=' ';
if(j==1)
a='0';
if(j==2)
a='*';
if(j==3)
a='$';
if(map[x][y]!=oldmap[x][y])
{printf("%c",a);oldmap[x][y]=map[x][y];}
}
}
void setplane(int x,int y)
{
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hOut,FOREGROUND_GREEN);
int i,j;
for(i=0;i<50;i++)
for(j=0;j<40;j++)
if(map[i][j]==1)
map[i][j]=0;
for(i=y;i
map[x][i]=1;
for(i=x-3;i
map[i][y+2]=1;
map[x-1][y+5]=1;
map[x+1][y+5]=1;
}
int main()
{
srand((unsigned)time(NULL));
int x,y,px=25,py=30,flag,ix,iy,m,score=0;
long t1,t2,t3,t4;
char a;
system("mode con cols=80 lines=40");
for(x=0;x<50;x++)
for(y=0;y<40;y++)
{
map[x][y]=0;
oldmap[x][y]=-1;
}
HideCursor();
flag=true;
drawmap();
Now_Time=clock();
t1=Now_Time;
t2=Now_Time;
t3=Now_Time;
while(1)
{
Now_Time=clock();
if(kbhit())
{
a=getch();
if((a=='a')&&((px-3)>0))
px=px-1;
if((a=='s')&&((py+6)<40))
py=py+1;
if((a=='d')&&((px+3)<49))
px=px+1;
if((a=='w')&&(py>0))
py=py-1;
if(a=='p')
flag=!flag;
}
if(flag)
{
setplane(px,py);
if(Now_Time-t1>200)
{
map[px][py-1]=2;
t1=Now_Time;
}
if(Now_Time-t2>30)
{
t2=Now_Time;
for(x=0;x<50;x++)
for(y=0;y<40;y++)
if(map[x][y]==2)
{
map[x][y]=0;
if((y-1)>0)
map[x][y-1]=2;
}
}
if(Now_Time-t3>1000)
{
ix=rand()%44+3;
iy=1;
map[ix][iy]=3;
t3=Now_Time;
}
if(Now_Time-t4>500)
{
t4=Now_Time;
for(x=50;x>0;x--)
for(y=40;y>0;y--)
if(map[x][y]==3)
{
map[x][y]=0;
if((y+1)<40)
map[x][y+1]=3;
}
}
drawmap();
}
}
}