飞机打扭来扭去的靶子
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
#include<malloc.h>
int x1,x2,x3,y1,y2,y3,x0,y0,en,bu;//1靶子,2子弹,0总屏幕 ,en敌人数量 ,bu子弹数量 ,enz敌人固定数量
void HideCursor()
{
CONSOLE_CURSOR_INFO cursor_info={1,0};
SetConsoleCursorInfo (GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
//横向y,纵向x
int main()
{
int x,y,i,j,m,n,de,en,enz;
x=10;y=20;x0=3*x;y0=3*y;y1=y+10;x1=x-1;x2=x;y2=y;
int f=0,f0=0;de=0;en=0;enz=5;//f发射,f0存在
char s;
HideCursor();
while(1)
{
system("cls");system("color F0");
printf(" ");for(i=0;i<y0;i++){printf("*");}printf("得分:%d",de);
printf("\n");
srand((unsigned)time(NULL));
while(en<enz){y1=(y1+(rand()%2))%(y0+4);if(y1==0){y1=4;}for(j=0;j<y1;j++){printf(" ");}printf("+\n");en=en+1;
}
for(i=0;i<5-enz;i++){printf("\n");}//补*消失的空位
if(x2==0){x2=x;f=0;}//子弹移动
if(x2==x){y2=y;}
if(f==0)
{
for(i=0;i<x;i++){printf("\n");}
}
else /*if(f0=1)*/ {
for(i=0;i<x;i++)
{
if(i==x2-1){for(j=0;j<y2;j++){printf(" ");}printf(" |\n");x2--;}else {printf("\n");}
}
if(y2+3==y1&&x2==0){de=de+1;enz=enz-1;}
}
if(enz==0){enz=5;}
for(j=0;j<y;j++){printf(" ");}
printf(" ^\n");
for(j=0;j<y;j++){printf(" ");}
printf(" ***\n");
for(j=0;j<y;j++){printf(" ");}
printf("<* *>\n");
s=getch();
if(s=='a'){y--;}
if(s=='d'){y++;}
if(s=='w'){x--;}
if(s=='s'){x++;}
if(s==' '){f=1;}
if(s==0x1b){exit(0);}en=0;
}
}