飞机大战
w为向上移动,a为向左移动,s为向下移动,d为向右移动,空格为发射子弹
隐藏光标函数
void hide_cursor(void){
CONSOLE_CURSOR_INFO info={1,0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info);
}
//隐藏光标
飞机大战的主函数
int main(){
int x=5;
int y=10;
int i,j;
int is_fire=0; //是否发射
int nx=y/2; //靶子的位置
int is_killed=0;//是否被打掉
srand(time(NULL));//产生随机数种子
hide_cursor();//隐藏光标
system("mode con cols=60 lines=40");//设置屏幕为手机格式
while(1){
system("cls");
if(is_killed==0){//没有被干掉,绘制靶子
for(i=0;i<nx;i++)
printf(" ");
printf("@\n");
}
if(is_fire==0){
for(i=0;i<y;i++)printf("\n");
}else{
for(i=0;i<y;i++){
for(j=0;j<x;j++)
printf(" ");
printf(" -\n");
is_fire=0;
}
if(nx==x+2){
is_killed=1;
srand(time(NULL));
}
}
//绘制飞机
for(i=0;i<x;i++)printf(" ");
printf(" *\n");
for(i=0;i<x;i++)printf(" ");
printf("*****\n");
for(i=0;i<x;i++)printf(" ");
printf(" * *\n");
if(kbhit()){//如果检测到键盘按键,返回1
int c= getch();//获取键盘值,不需要按回车
switch(c){
case'a':x--;break;
case'd':x++;break;
case's':y++;break;
case'w':y--;break;
case' ':is_fire=1;break;
}
}
Sleep(10);
}
}